Version 1.4 Released: 11 April 1992 Support for many SVGA boards at 640x480 resolution in 256 colors. See documentation for the -V flag. (Note: SVGA displays only work on the 286 versions.) Changed the way the status output is managed. Now requires a number following the -t flag. Note that line and pixel status will screw up SVGA displays - drawing goes to the wrong place starting around line 100. If using SVGA display then either use no status, or "totals". Added cylindrical blob components. Changed the syntax for blobs to accomodate the new type. Added lathe surfaces made from either line segments or quadratic splines. Added sweep surfaces made from quadratic splines. Height field syntax changed slightly. Non-square height fields now handled correctly. Added adaptive antialiasing. Squashed bug in shading routines that affected almost all primitives. This bug was most noticible for objects that were scaled using different values for x, y, and z. Added transparency values to color maps. Added new keywords to the file "polyray.ini": shadow_tolerance, antialias, alias_threshold, max_samples. Lines that begin with "// " in polyray.ini are now treated as comments. Short document called "texture.txt" is now included in "plydoc.zip". This describes in a little more detail how to go about developing solid textures using Polyray. Version 1.3 (not released) Added support for scan converting implicit functions and polynomial surfaces using the marching cubes algorithm. This technique can be slow, and is restricted to objects that have user defined bounding shapes, but now Polyray is able to scan convert any primitive. A global shading flag has been added in order to selectively turn on/off some of the more time consuming shading options. This option will also allow for the use of raytracing as a way of determining shadows, reflectivity, and transparency during scan conversion. Added new keywords to the file "polyray.ini": pixel_size, pixel_encoding, shade_flags. Improved refraction code to (mostly) handle transparent surfaces that are defined by CSG intersection. Fixed miscoloring of shadows that receive some light through a transparent object. Jittered antialiasing was not being called when the option was selected, this has been fixed. Fixed parsing of blobs and polygons that had large numbers of entries. Previously the parser would fail after 50-60 elements in a blob and the same number of vertices of a polygon. In keeping with the format used by POV-Ray and Vivid, comments may now start with "//" as well as "#". The use of the pound symbol for comments may be phased out in future versions. Version 1.2 Released: 16 February 1992 Scan conversion of many primitives, using Z-Buffer techniques. New primitives: sweep surface, torus Support for the standard 320x200 VGA display in 256 colors. An initialization file ("polyray.ini") is read before processing. This allows greater flexibility in tuning many of the default values used by Polyray. User defined bounding slabs added. This greatly improves speed of rendering on data files with many small objects. Noise surface added. Symbol table routines completely reworked. Improved speed for data files containing many definitions. Bug in the texturing of height fields corrected. Version 1.1 (not released) Added parabola primitive Dithering of rays, and objects Blob code improved, shading corrected, intersection code is faster and returns fewer incorrect results. Version 1.0 Released: 27 December 1991 Several changes in input syntax were made, the most notable result being that commas are required in many more places. The reason for this is that due to the very flexible nature of expressions possible, a certain amount of syntatic sugar is required to remove ambiguities from the parser. Several new primitives were added: boxes, cones, cylinders, discs, height fields, and Bezier patches. A new way of doing textures was added - each component of the lighting model can be specified by an implicit function that is evaluated at run time. Using this feature leads to slower textures, however because the textures are defined in the data file instead of within Polyray, development of mathematical texturing can be developed without making alterations to Polyray. File flush commands in the data file and at the command line were added. Several new Targa variants were added. Image mapping added. Numerous bug fixes have occured. Version 0.3 (beta) Released: 14 October 1991 This release added Constructive Solid Geometry, functional surfaces defined in terms of transcendental functions, a checker texture, and compressed Targa output. Polyray no longer accepted a list of bounding/clipping objects, only a single object is allowed. since CSG can be used to define complex shapes, this is not a limitation, and even better makes for cleaner data files. Version 0.2 (beta) (not released) This release added animation support, defined objects, arithemetic expression parsing, and blobs. Version 0.1 (beta) (not released) First incarnation of Polyray. This version had code for polynomial equations and some of the basic surface types contained in "mtv".