Major changes since 3.0 ----------------------- Addition of CSG. "union", "intersect" and "difference" types. Animation support. Multi-frame image files, use of expressions, animated transformations, new keywords, including: shutter, frames, framelength, define, starttime. "linear" function, "time" and "frame" variables. Aggregate syntax changed. Rather than "define .... defend" with the aggregate type buried inbetween, syntax is "type ... end", where type is one of: grid, list, union, intersect, difference. Object naming is now accomplished by preceding one of the above with the "name" keyword followed by the name to assign to the aggregate. Torus, blob primitives added, courtesy of Mark Podlipec and Jochen Schwarze. Buggy superquadric primitive removed. Surface definition syntax and binding changed. Surface definition is now keyword- based. Note that the specular color of a surface is used to modify the color of reflected rays in 4.0. When converting 3.0 scripts to 4.0, the specular component and/or reflectivity may need to be modified. Improved antialiasing. Rather than using an adaptive scheme or nonadaptive "distributed" ray tracing, an adaptive jittered algorithm is used. Additional textures and light source types. Vastly improved performance when using many texturing functions. Many minor and not-so-minor bugfixes.