Persistence of Vision Raytracer What's New ------------------------------- Ver. 0.5 BETA - NEW Case sensitiviy options: In dat files... > case_sensitive_yes -- All words checked for exact case. Keywords must be in upper case. (*Old DKB Style*) > case_sensitive_no -- Case is ignored for all words. > case_sensitive_opt -- DEFAULT - All words checked for exact case except keywords. Keywords will be accepted in upper and/or lower case. -> command line -- /tY = yes, /tN = no, /tO = opt - cnvdat.c to convert old dat files included with pvsrc. - C++ style commenting (\\ & /* */) added by Drew Wells - # and ; are now ignored by the tokenizer/parser for those who would like to use them. #include is now ok. - Sample dat files converted to lower case keywords - New stats display outputs to stdout for better redirection. - New lighting routines by David Buck. - The declared colors Red, Green, and Blue in colors.dat are now CRed, CBlue, CGreen. - The declared quadric Sphere in shapes.dat is now QSphere. - Textures.dat has been cleaned up and commented. - Height fields added by Doug Muir - Bump Mapping added by Doug Muir and Drew Wells - Materials mapping added by Drew Wells. - Gouge mapping from old code by Drew Wells & Doug Muir added by Aaron Collins. - Time to trace display added to program stats by Bill Pulver. - ONION & LEOPARD textures added by Scott Taylor. - IBM-PC grayscale display option was thought of by both Scott Taylor and Grant Hess. Actual implementation of it by Aaron Collins. - Interpolation options to smooth the image and bump maps from code by Girish T. Hagan added by Drew Wells - Verbose option now displays more information, including file being traced, resolution, and current line number of how many total. - New screen credit style. - Option +vO added to allow old-style terse verbose (just line #'s). - Wood texture bug found by John Swenson fixed. Wood now uses true cylinders. This may affect some old pictures, but is more realistic. - Texture.doc describes the steps to add a new texture to the source. - Added Alexander Enzmann's latest modifications: A. Revised 4th order (Quartic) surfaces for better results. When using the new Sturmian Sequences for QUARTICS, The digial acne is now all but vanquished! B. New code giving the ability to render 5th and 6th order surfaces. These use the new Sturmian Sequences to solve the surface intersections. C. Bezier bicubic patch surfaces! - Smooth curved surfaces are implemented by breaking the curve into tiny subpatches when rendering. Teapots, anyone? D. "CLIPPING" primitives added. These work almost like "BOUNDING" shapes, but will cause surfaces protruding beyond the bound to be cut off. The BOUNDED_BY primitive may cause this to happen but it is not guaranteed to, nor was it meant to be used that way. Before the CLIPPED_BY was added you needed to CSG with a clear box or sphere shape to get this effect. The new CLIPPED_BY tests are much, much faster than CSG tests. E. MacIntosh color display output routines are now included. F. A few of the larger static data items are now malloc'ed instead. G. Made more universal compiler-specific header strings for fopen() binary modes "rb", "wb", etc., and for credit printout and ending program actions. All of them have default definitions in FRAME.H if left unspecified. For porting to other machines or compilers, check FRAME.H first for the default definition, then add in the definition to the machine-specific header files if they need modification. H. IBM color palette changes allow use of 3-3-2 RGB display using 256 colors on (S)VGA display adapters. This uses 3 bits for R, 3 for G and 2 for B. It is different than the HSV coloring system in that while the colors are less accurate, there are more shades of them. Can be better for showing shadows and gradients, etc. I. Added the TRANSMIT keyword as a flag for whether or not the object will transmit light without refracting it. Follow the keyword with either 0.0 or 1.0 to turn off or on the TRANSMITtance of an object. This is rather like the old ALPHA facility before it was interwoven into the REFRACTION algorithm. The idea behind this is that you may want to specify a different level of TRANSMITtance vs. REFRACTION. J. Added new mapping options, sphere, cylinder, torus, etc. - Added changes made by Aaron A. Collins: A. Made exit codes consistent throughout. The program now returns an exit code (ERRORLEVEL for you IBM-er's) of 1 if unsuccessful or 0 of all went well with the trace. B. Raised number of prioq' from 20 to 32. This should cure some instances of crash during parsing that have been reported. C. Added display "greyscale" option to make all displayed hues of red, green and blue equal and of specially weighted value. The weighting used is that for B/W television, which emulates the response of the human eye. The IBM specific code also includes a grey-scale optimized palette using 64 levels of grey. This will display nice smooth gradients and shadows, etc. and generally looks better than the color display routines now used. Please note that this option only affects the colors used for the onscreen display. The output file will still be in full, true 24-bit living color! Note this will work on any machine's display adapter at any resolution. VGA palette code and the general idea of greyscaling the display output was courtesy of Grant Hess and Scott Taylor. D. The IBM version supports the Hercules Graphics Workstation card now, and should work on other TIGA-based 24-bit color cards as well. The 16 and 24-bit modes of the card are supported at 512x480 resolution. The code for the HGWS/TIGA was provided courtesy of Jay S. Curtis. E. If no file was requested to be generated (-f), which is extremely rare, the program locked up and died. This is now fixed. F. The Macintosh conversion of DKB 2.12 out there called MACPORT.CPT is now included with PV-Ray. This includes a better GUI-oriented interface and (I believe) color display routines. This port was done by Thomas Okken. Among his fixes was a solution that I had heard of and had since forgotten about: Two ANSI-C reserved words "entry" and "power" were used as formal function parameters. These have been changed to something universally inoffensive. G. Someone (unfortunately there were no credits given to relate) had released the file XENIXPRT.DOC which was also incorporated into the new release. This makes the program port to SCO Xenix's "C" compiler nicely (with work-arounds for their buggy "floor()" function). This fix also uncomplicates some of the quartic math routines which some other not-quite-up-to-speed "C" compilers (which shall remain nameless) also tossed their cookies on. H. The fixed VESA routines and Sierra HiColor routines by Charles Marslett (CIS: 73317,3662) are now added to POV-Ray. These changes now allow 32,768 colors on VESA or Tseng Labs 4000 chip set SVGA cards equipped with Sierra HiColor palette DAC's. These modifications also fixed the VESA SVGA adapter display routines (the original VESA routines were converted from IBM assembler, and didn't work, because I never had a VESA compatible SVGA card to try them on!) Also included in Charles' fixes were support of 800x600x256 (Tseng 3000, 4000, and VESA) and 1024x760x256 (Tseng 4000 and VESA) and 1280x1024x256 (sorry, VESA only) display modes. I. Added global display parameter "Palette option" that will use alternate palette color selection methods, if applicable. For all machine-specific ports there is mode '0' or unspecified (default), which is the standard method used in previous versions, and 'G', for grey-scale display. To use a palette option, simply add the mode letter (ex. 'g' or '0') after specifying the type of display (i.e. "+d3g" to use the greyscale option on video mode 3.) If you use the display autodetection of PV-Ray by normally saying just "+d", use the option "+d0g" to add grey scaling but still use the same autodetected video mode. Specifiying the default of just "+d" is now equivalent to saying "+d00". The IBM-specific port also includes the palette option '3' for using a 3-3-2 palette instead of the usual HSV->RGB one (see #H in Alexander Enzmann's changes above). The IBM port also uses a greyscale-optimized palette of 64 continuous shades of grey if the 'G' palette option is selected (see #C above). The IBM port also now supports the Sierra HiColor palette DAC, by using palette option 'H' (see #H above).