From erkki@login.dknet.dk Mon Aug 28 00:08:01 PDT 1995 Article: 1448 of comp.graphics.rendering.raytracing Path: nntp.Stanford.EDU!news.Stanford.EDU!agate!news.duke.edu!news.mathworks.com!tank.news.pipex.net!pipex!dish.news.pipex.net!pipex!sunic!sunic.sunet.se!news.uni-c.dk!dkuug!usenet From: erkki@login.dknet.dk (Erkki Sondergaard) Newsgroups: comp.graphics.rendering.raytracing Subject: POV-Ray 3.0 status Date: Sun, 27 Aug 1995 23:04:20 -0400 Organization: DKnet Lines: 220 Message-ID: NNTP-Posting-Host: login.dknet.dk Since people seems to think the POV-Team doesn't tell about the current status of POV-Ray 3.0 often enough here's the latest news from the team on this subject. This is our current version of "The List" as of June 5, 1995 PART I -- FEATURES TOTALLY IMPLEMENTED AND GUARANTEED TO BE IN 3.0 1. New command-line and option features. A. Eliminated +T case sensitive switch. B. Eliminated sub-options of +V switch. C. Changed when +SR, +SC, +ER, +EC take effect when using fractional values. For example: +W320 +SR0.1 +W640 used to result in +SR32 now late binding results in +SR64. Order of specifying switches no longer hurts. D. Now +B0 or -B0 turns off any previous +Bnnn setting. Formerly any +B setting could not be overridden once set. Now it can be. E. Modified +Xnnn command-line switch to only check for keypress every nnn pixels. F. Options may now be set in an .INI file with commands such as "This_Option=value". INI files may contain sections with [Sections] headers. Put "MYFILE.INI[MYSECTION]" on command line. Only the section [MYSECTION] of file MYFILE.INI is read. G. Old command-line switches and .DEF files still supported. H. Both switches and INI options may be specified in files, on command-line or in POVRAYOPT environment variable. New option to write all .INI settings to a file. I. DEF and INI files may be nested up to 10 levels. 2. New math functions. A. The following functions have been added to the expression parser These return float values... abs(A) absolute values of A acos(A) arc-cosine, the angle whose cosine is A asin(A) arc-sine, the angle whose sine is A atan2(X,Y) arc-tangent in radians of (X/Y) ceil(A) round up to next integer value A clock * value of +K switch cos(A) cosine of A where A is in radians degrees(A) convert A from radians to degrees div(A,B) integer part of (A/B) exp(A) e-to-the A power int(A) integer part of A log(A) base e logarithm of A max(A,B) maximum of A and B min(A,B) minimum of A and B mod(A,B) A modulo B, the remainder of A/B pi constant 3.3.1415926535897932384626 pow(A,B) raise A to the B power radians(A) convert A from degrees to radians sin(A) sine of A where A is in radiens sqrt(A) square root of A tan(A) tangent of A where A is in radians vdot(V1,V2) dot product of vectors V1 and V2 vlength(V1) length of vector V1 version * value of version variable These return vector values... vaxis_rotate(V1,V2,D) rotate point V1 by D degrees about any arbitrary axis V2 (not just coordinate axes) vcross(V1,V2) cross product of V1 X V2 vnormalize(V) scale V to unit length vrotate(V1,V2) rotate point V1 about coordinate axes by amount of degrees. Example: vrotate(V1,30*y) rotates V1 by 30 degrees about y-axis. x, y, z * constant unit vectors (Note: * denotes already in POV-Ray 2.2) B. Relational expressions and operators implemented. (A=B) (A>B) Note: Relational expressions MUST be in parenthesis. C. Logical expressions and operators. !(A) (A&B) (A|B) D. Logical constants on, off, true, false, yes, no. E. Conditional expressions. (COND)?A:B if COND then value is A else B. F. Math expressions apply to colors as well as floats and vectors. Also mixed expressions "White*.75". Float may always be promoted to vector. Examp: sphere{0,1} is sphere{<0,0,0>,1} 3. New texture features. A. New 5th color channel "transmit" for non-filtered transparency. Added "transmit" keyword (example "color red 0.6 transmit 0.7") Added "rgbt" and "rgbft" keywords (similar to "rgbf" but for transmit). B. Weighted average of multiple pigments, normals and textures. C. All pigment types (wood, marble etc) may be used as normal types. D. All normal types (bumps, waves etc) may be used as pigment types. E. New pigment & normal pattern types: brick, crackle, spiral1 & spiral2 (with number of arms adjustable), quilted (with parameters control0 and control1) F. New pigment_map allows pigment patterns to consist of a blend of pigment patterns rather than just a blend of solid color. G. New normal_map allows normal patterns to consist of a blend of other normal patterns. H. New slope_map allows shaping of the wave forms of most normal types. I. New texture_map texture patterns to consist of a blend of textures patterns rather than just one. Basically extends concept of "tiles" and "material_map" to any pattern. J. Choice of wave forms for many pigments and normals. Types: ramp_wave, triangle_wave, sine_wave, scallop_wave. For example wood and marble pigment used to be forced to use triangle_wave with pattern from 0.0 to 0.5 then reversing from 0.5 to 1.0. Now can be overridden with ramp_wave. K. New iridescence finish with turbulence and other parameters. L. New directional ambient light doesn't cast shadows. M. Specify number of waves for waves and ripples patterns. N. Improved color calculation for metallic surfaces. O. New pattern warping functions including repeat, black_hole, new turbulence options. P. Colored ambient (local & global) and colored specular reflection Q. The "metallic" keyword may be optionally followed by a float value. R. Ray-based radiosity method computes diffuse inter-reflections. S. Simulated caustics lighten and darken transparent shadows. 4. Atmospheric effects. A. New fog types. B. Rainbows with parameters to adjust angles and falloff at edges. C. Skyblend backgrounds D. Declare identifiers for fogs, rainbows, and skyblends. Allow multiple atmospheric effects. E. Volume sampling to simulate atmospheric scattering F. Partially transparent fog option insures some background always gets through. 5. New object primitives. A. Blob components may be sphere or cylinder. Old sphere-only syntax still supported. B. Blob components may be individually textured, translated, rotated and scaled. C. New lathe primitive creates object by rotating polygon about the y-axis. Optional curved edges. D. New surface of revolution primitive. Create object by rotating curve about y-axis. E. New polygon primitive. Any number of sides. F. New prism primitive. Extrude a polygon. Optional curved edges. Optional tapering. G. New extruded text object created from truetype fonts with proportional spacing and kerning. H. New superquadric ellipsoids for rounded boxes, cylinders and other interesting shapes. I. New triangle_mesh object with individual textures and internal bounding. 6. New light source features A. New cylindrical spotlight added to light_source. B. Light may optionally fall off due to light source distance 7. Speed improvements. A. New light buffer and vista buffer speed-up from FTPOV (Note: FTPOV author Dieter Bayer joined POV-Ray Team) B. Shadow rays faster when object has no transparency. C. Internal bounding of blob components and other blob speed improvements. D. New Automatic Depth Control stops tracing reflected or transmitted rays when those rays contribution drops below a threshold value. E. Optionally remove manual bounded_by when auto bounding may perform better. Especially useful for old scenes with lots of manual bounds. F. Improved handling of infinite primitives in bounding. G. Improved auto-bounding of torus primitive. H. Improved quartic and polynomial root solving. I. Improved CSG bounding. J. Improved clipped quadric bounding. K. Faster normal calculation of smooth triangles. L. Faster disc functions with tighter bounds. M. Faster height_fields with bug fixes. 8. Camera features. A. New camera types: orthographic, fisheye, omnimax, panoramic, ultra_wide_angle, cylindrical (four types). B. Focal blur to simulate depth of field. C. Camera ray normal patterns for bumpy, wavy etc lens effects. D. Bug fixes in old camera. 9. Input/Output features. A. Improved parse error messages with echo of lines leading up to the error. B. Re-designed status, render, and statistic output with redirection and/or echo of text to disk files. C. Internal reorganization of all text I/O functions and memory allocation to ease porting to GUI environments. D. Compressed Targa now supported via +FC switch. Added support for targa type 11 files. E. Support for input of files in PPM and PGM file format for image_map, bump_map, material_map and height_field. F. Suports PPM file format output via +FP switch. G. Credit screen. H. Revised render options text layout. I. New +QH creates 16-bit grayscale output for subsequent use as height_field data. J. Statistics counter capacity increased to count more rays. K. Can now pipe .POV files in from stdin and image files can be piped out to stdout. L. Rendering profiling output option shows which parts of trace are slowest. M. Mosaic preview shows blocky version of image as test render. 10. Misc. language improvements. A. The sturm keyword can be turned off with "sturm 0" B. Made "color" keyword optional everywhere except old style color maps. C. New #if #else #end language directives. D. New #switch, #case, and #range directives. E. Now possible to do #declare even within other statements. 11. Animation support. A. Internal animation loop renders multiple frames. Specify initial and final frame numbers and initial and final clock values. Output file names automatically numbered. B. Specify subset of frames to be rendered (example just render frames 30-40 of 100 frame animation. C. Support for cyclic animation drops last frame. D. Shell out to other programs before/after each frame and before/after entire scene.