home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / raytrace / pov_10 / docs / quickref < prev    next >
Encoding:
Text File  |  1992-07-26  |  24.9 KB  |  839 lines

  1. Persistence of Vision Raytracer
  2. Version 1.0 
  3. Quick Reference
  4. -------------------------------
  5. By Larry Tweed & Drew Wells
  6.  
  7. This document is designed as a quick reference for those already 
  8. familiar with the program POV-Ray. You should use POVRAY.DOC to learn 
  9. about POV-Ray and then use this document as a memory jogger or for 
  10. quick syntax checks. It is not meant to replace the main documents that 
  11. accompany POV-Ray.
  12.  
  13. NOTE: This document is not complete or perfectly accurate in all cases. 
  14.       We judged it to be useful even with a few innacuracies and its 
  15.       state of completion. Hopefully, it will be useful to you. If you 
  16.       can't find something here or can't understand what is here, refer 
  17.       to POVRAY.DOC.
  18.  
  19. Some entries have been left blank due to time constraints. A later 
  20. version of this document will contain text for these entries. For now, 
  21. refer to POVRAY.DOC. The list is alphabetical, with texture modifiers 
  22. at the end of the list.
  23.  
  24. ---------------------------------------------------------------------------
  25.                       
  26.  
  27. bezier/bicubic patches
  28. ----------------------
  29. Syntax:
  30. Description:
  31.  
  32. blob
  33. ----
  34. Syntax: blob {
  35.           threshold #
  36.           component (strength_val) (radius_val) <component center>
  37.           component (strength_val) (radius_val) <component center>
  38.           [ any number of components ]
  39.           [sturm]
  40.         }   
  41.  
  42. Description: A blobby shape. Components radii should overlap.
  43.  
  44. bounded_by
  45. ----------
  46. Syntax: object {
  47.            ...
  48.            bounded_by {
  49.               shape {...}
  50.            }
  51.         }
  52.  
  53. Description: A bounding shape helps speed rendering time in many cases. 
  54.              The bounding shape is first tested by the raytracer. If 
  55.              the ray does not strike the bounding shape, the raytracer 
  56.              does not need to test or calculate any of the bounded 
  57.              objects.
  58.  
  59. box
  60. ---
  61. Syntax: box { <x1 y1 z1> <x2 y2 z2> }
  62.  
  63. Description: A box shape is defined by specifying 2 corners. The first 
  64.              corner (<x1 y1 z1> in the example above) must be smaller 
  65.              than the second corner.
  66.  
  67. camera
  68. ------
  69. Syntax: camera {
  70.           location <0 0 0>
  71.           direction <0 0 1>
  72.           up <0 1 0>
  73.           right <1.33 0 0>
  74.           look_at<0 0 0>
  75.           sky <0 1 0>
  76.         }
  77.  
  78. Description: The camera defines the orientation and location in space 
  79.              of the viewer. The values shown above are the default 
  80.              values. If these items are not specified, the defaults 
  81.              will be used.
  82.  
  83. clipped_by
  84. ----------
  85. Syntax: object {
  86.           ...
  87.           clipped_by {
  88.              object {...}
  89.           }
  90.         }
  91.  
  92. Description: clipped_by will "cut off" any part of the object that is 
  93.              outside the clipping shape. This should not be confused 
  94.              with bounded_by.
  95.  
  96. composite
  97. ---------
  98. Syntax: composite {
  99.            object1 {...}
  100.            object2 {...}
  101.         }
  102.  
  103. Description: composite will "glue together" 2 or more objects. 
  104.              Essentially, the objects can then be considered as single 
  105.              unit.
  106.  
  107. difference
  108. ----------
  109. Syntax: object {
  110.           difference {
  111.              shape1 {...}
  112.              shape2 {...} // This will be "cut out" of shape1
  113.              shape3 {...} // This will be "cut out" of shape1
  114.              shape4 {...} // This will be "cut out" of shape1
  115.              (...)
  116.           }
  117.         }
  118.  
  119. Description: A difference is a CSG shape. All points in shape1 that are 
  120.              not in shape2 will be included in the final shape. A 
  121.              difference essentially subtracts the shapes following 
  122.              shape1 from shape1. Any number of shapes may be used. 
  123.  
  124. direction
  125. ---------
  126. Syntax: direction <# # #>
  127.  
  128. Description: The direction vector is used in the camera block and 
  129.              specifies the direction the camera is pointing with a 
  130.              vector. Normally, this vector points straight ahead
  131.              (<0 0 1>) and look_at is used to point the camera. The 
  132.              direction vector should be used to set the "length" of the 
  133.              camera lens. Small values are similar to a wide-angle 
  134.              lens, large values are like a tele-photo lens.
  135.  
  136. height_field
  137. ------------
  138. Syntax: height_field { gif "file.gif" water_level # }
  139.  
  140. Description: A height field is a rectangular mesh of triangles where 
  141.              the height of a triangle at a certain X,Z point is 
  142.              controlled by the number in a file at that same index. 
  143.              GIF, TGA and POT files may be used as height fields. The 
  144.              water_level is the height below which the untransformed 
  145.              height field is cut off. The untransformed height field is 
  146.              similar in size to:
  147.                  box { <0 0 0> <1 1 1> }
  148.  
  149. intersection
  150. ------------
  151. Syntax:  object {
  152.            intersection {
  153.               shape1 {...}
  154.               shape2 {...}
  155.            }
  156.          }
  157.  
  158. Description: An intersection is a CSG shape composed of 2 or more 
  159.              shapes. All points that are contained in all the included 
  160.              shapes are included in the final shape. In essence, an 
  161.              intersection is the space where all the shapes meet.
  162.  
  163. inverse
  164. -------
  165. Syntax: object {
  166.           csg_shape_type {
  167.              shape1 {...}
  168.              shape2 {... inverse }
  169.           }
  170.         }
  171.  
  172. Description: Inverse only has effect when using CSG. When inverse is 
  173.              put into the definition of a shape, it turns the shape 
  174.              "inside-out". Essentially, every point that was "inside" 
  175.              the shape is now "outside" and vice versa.
  176.  
  177. light_source
  178. ------------
  179. Syntax: light_source { <x y z> color red # green # blue #}
  180.  
  181. Description: To shed a little light on a scene, you must provide a 
  182.              light_source. The center of the light is at the vector x, 
  183.              y and z. The red, green, and blue color values define the 
  184.              color of the light which is cast. The light_source itself 
  185.              is invisible. A light source is treated as a shape even 
  186.              though it cannot be seen. It may be used in CSG.
  187.  
  188. look_at
  189. -------
  190. Syntax: camera {
  191.           ...
  192.           look_at <x y z>
  193.         }
  194.  
  195. Description: look_at defines the point in space at which the camera is 
  196.              pointing, or focused on as defined by the x, y and z 
  197.              parameters.
  198.  
  199. no_shadow
  200. ---------
  201. Syntax: object {
  202.           ...
  203.           no_shadow
  204.         }
  205.  
  206. Description: no_shadow causes an object to be transparent to all light 
  207.              sources. The object will not cast a shadow. This feature 
  208.              is especially useful for enclosing a light source to 
  209.              give the illusion that the light source is actually 
  210.              visible with a shape.
  211.  
  212. object
  213. ------
  214. Syntax: object { 
  215.           shape_type { ... }
  216.           texture { ... }
  217.         }
  218.  
  219. Description: objects are the basic building blocks. An object defines a 
  220.              shape and associated textures. Objects may not be used in 
  221.              CSG, but they may be used in composite objects.
  222.  
  223. plane
  224. -----
  225. Syntax: plane { <x y z> d }
  226.  
  227. Description: A plane is a flat surface which is infinite in all 
  228.              directions. The surface normal (or orientation) of the 
  229.              plane is determined by the x, y and z arguments. The d 
  230.              parameter specifies the distance of the plane from the 
  231.              origin in the direction of the surface normal.
  232.  
  233.                 plane { <0 1 0> 0 } // XZ plane, a floor
  234.                 plane { <0 0 1> 10 }// XY plane, a wall
  235.  
  236. Quadric
  237. -------
  238. Syntax:
  239.  
  240. Description:
  241.  
  242. Quartic
  243. -------
  244. Syntax:
  245.  
  246. Description:
  247.  
  248.  
  249.  
  250. right
  251. -----
  252. Syntax: right <x y z>
  253.  
  254. Description: Used in the camera description, it specifies which 
  255.              direction in the ray tracing universe is the right hand 
  256.              side of the image being generated. Usually, right
  257.              <1.33 0 0>.
  258.  
  259. rotate
  260. ------
  261. Syntax: object { ... rotate <x y z> }
  262.         shape  { ... rotate <x y z> }
  263.         texture{ ... rotate <x y z> }
  264.  
  265. Description: rotate will move any element about the origin in x, y and 
  266.              z degrees. It is important to note that if the object is 
  267.              not centered at the origin, it will "orbit" the origin 
  268.              rather than its current center. 
  269.  
  270. scale
  271. -----
  272. Syntax: object { ... scale <x y z> }
  273.         shape  { ... scale <x y z> }
  274.         texture{ ... scale <x y z> }
  275.  
  276. Description: scale will enlarge or reduce the size of any element. If 
  277.              the values for x, y or z are greater than 1.0, the object 
  278.              is enlarged. If the values are between 0.0 and 1.0, the 
  279.              object is shrunk. Scale may also be use on textures.
  280.              NOTE: Scaling by zero will cause an error.
  281.  
  282. sky
  283. ---
  284. Syntax: camera {
  285.           ...
  286.           sky <x y z>
  287.         }
  288.  
  289. Description: sky describes the orientation of the sky, which is not 
  290.              necessarily the same as the UP direction. If sky is 
  291.              defined, it must be defined before the look_at parameter.
  292.  
  293. sphere
  294. ------
  295. Syntax: sphere { <x y z> r }
  296.  
  297. Description: A sphere is a perfectly round shape. Its location in space 
  298.              is defined by the x, y, and z arguments. The radius is 
  299.              determined by the r argument. The width of a sphere will 
  300.              be 2 x r. It cannot be scaled unevenly.
  301.  
  302. spotlight
  303. ---------
  304. Syntax: light_source {
  305.           <x y z> // center of light source
  306.           color red # green # blue #
  307.           spotlight
  308.           point_at <x y z>
  309.           radius #
  310.           falloff #
  311.           tightness #
  312.         }
  313.  
  314. Description: A spotlight light_source emulates the behavior of a real 
  315.              spotlight, projecting a cone of light. point_at specifies 
  316.              the point in space that the light is aimed at. radius is 
  317.              the radius in degrees of the circular "hotspot" at the 
  318.              center of the spotlight's area of effect. falloff is the 
  319.              radius in degrees that defines the area where the 
  320.              brightness falls off to zero. Both values may range 
  321.              between 1 and 180. Tightness controls how fast the 
  322.              brightness falls off at the edges. Low values cause softer 
  323.              edges, high values create sharper edges.
  324.  
  325. texture
  326. -------
  327. Syntax:  object {
  328.            ...
  329.            texture {
  330.               (texture modifiers)
  331.            }
  332.          }
  333.          shape { ... texture {...} }
  334.  
  335. Description: The texture keyword begins a block which describes the 
  336.              appearance of an object, but not the size. See the section 
  337.              on texture modifiers for a list of available modifiers and 
  338.              their defaults. A texture may be used inside a shape or 
  339.              object, but not in a composite object.
  340.  
  341. translate
  342. ---------
  343. Syntax: object { ... translate <x y z> }
  344.         shape  { ... translate <x y z> }
  345.         texture{ ... translate <x y z> }
  346.  
  347. Description: translate moves the element in space by the number of 
  348.              units specified by the x, y and z parameters. Translate is 
  349.              relative to the element's current location. If the element 
  350.              is at <3 4 5> and is translated by <1 -1 1>, the element 
  351.              is moved to <4 3 6>. Normally, translate is used after 
  352.              scale because the scale will "scale" the translate.
  353.  
  354. triangle
  355. --------
  356. Syntax: triangle { <x1 y1 z1> <x2 y2 z2> <x3 y3 z3> }
  357.  
  358. Description: A triangle is specified by the coordinates of the 3 
  359.              vertices. Triangles have no inside or outside, so cannot 
  360.              be used correctly in CSG shapes.
  361.  
  362. union
  363. -----
  364. Syntax: object {
  365.           union {
  366.              shape1 {...}
  367.              shape2 {...}
  368.           }
  369.         }
  370.  
  371. Description: Union is a CSG shape. A union essentially superimposes two 
  372.              or more shapes to create a single object. All points in 
  373.              the shapes included in a union are included in the final 
  374.              object.
  375.  
  376. up
  377. --
  378. Syntax: camera {
  379.            ...
  380.            up <x y z>
  381.         }
  382.  
  383. Description: The up parameter describes the surface normal of the "up" 
  384.              direction. up <0 1 0>, for example would have a "up" 
  385.              direction in the positive y direction.
  386.  
  387. --------------------------------------------------------------------------
  388.   Texture Modifiers
  389. --------------------------------------------------------------------------
  390.  
  391. agate
  392. -----
  393. Syntax: agate color_map {...}
  394.  
  395. Description: agate is a pattern similar to marble. It is always 
  396.              turbulent and ignores the turbulence keyword. agate is 
  397.              used within a texture block.
  398.  
  399. alpha
  400. -----
  401. Syntax: color red # green # blue # alpha #
  402.  
  403. Description: The alpha property of a color determines how transparent 
  404.              the color is. Values range from 0.0 (opaque) to 1.0 
  405.              (totally transparent). Transparency is a filter. Black is 
  406.              always opaque. The color red with alpha 1 will only allow 
  407.              red light through, and so on.
  408.  
  409. ambient
  410. -------
  411. Syntax: texture {
  412.            ...
  413.            ambient #
  414.         }
  415.  
  416. Description: ambient determines the amount of light an object receives 
  417.              even if it is in complete shadow. This emulates the light 
  418.              that is just "bouncing around" the room. The default value 
  419.              for ambient is 0.1. Values range from 0.0 to 1.0.
  420.  
  421. bozo
  422. ----
  423. Syntax: bozo color_map {...}
  424.  
  425. Description: A splotchy color pattern. Turbulence works on it. It's 
  426.              often used to create clouds.
  427.  
  428.  
  429. brilliance
  430. ----------
  431. Syntax: texture {
  432.            ...
  433.            brilliance #
  434.         }
  435.  
  436. Description: brilliance controls the tightness of diffuse illumination 
  437.              on an object and adjusts the appearance of surface 
  438.              shininess. Values from 3.0 to 10.0 can give a shiny or 
  439.              metallic appearance. The default value is 1.0. There is no 
  440.              limit on the brilliance value.
  441.  
  442. bump_map
  443. --------
  444. Syntax: bump_map { file_type "filename"  
  445.                    map_type # interpolate # bump_size # 
  446.                     (use_color) (use_index) }
  447. Ex: bump_map { gif "rough.gif" map_type 1 interpolate 2 bump_size 3 }
  448.  
  449. Description: Use a graphic image to simulate bumps on a shape.
  450.  
  451. bumps
  452. -----
  453. Syntax: texture {
  454.              bumps #
  455.         }
  456.  
  457. Description: bumps gives the surface of an object a bumpy appearance. 
  458.              Values for bumps range from 0.0 (no bumps) to 1.0 (very 
  459.              bumpy).
  460.  
  461. checker
  462. -------
  463. Syntax: checker color red # green # blue #
  464.                 color red # green # blue #
  465.  
  466. Description: the checker pattern gives an object a checkerboad 
  467.              appearance. Two colors must be specified after the 
  468.              checker keyword. These are the colors that will alternate 
  469.              in the checker pattern. The checker option is used within 
  470.              the texture block and works best on planes.
  471.  
  472. color
  473. -----
  474. Syntax: color red # green # blue # alpha #
  475.  
  476. Description: colors are specified using the red, green, blue and 
  477.              (optionally) alpha components. The values for each 
  478.              component range form 0.0 to 1.0. If a component is not 
  479.              specified, it is assumed to be 0 (none of that component 
  480.              color). Alpha specifies the transparency of the color.
  481.  
  482. color_map
  483. ---------
  484. Syntax: color_map {
  485.           [start_value end_value color1 color2]
  486.           [start_value end_value color1 color2]
  487.           ...
  488.         }
  489.  
  490. Description: A color_map provides a palette for color patterns. A point 
  491.              on the surface is located and it is determined which 
  492.              start_value end_value pair the points falls within. The 
  493.              color is then determined by smoothly blending the colors 
  494.              associated with the start_value end_value pair. Values for 
  495.              start_value and end_value range from 0.0 to 1.0. 
  496.  
  497. Example:
  498.      color_map {
  499.           [0   .25 color red 1 color red 1]
  500.           [.25 .5  color red 1 color green 1]
  501.           [.5 .75  color green 1 color blue 1]
  502.           [.75 .76 color Yellow color Orange]
  503.           [.76 1   color Black  color blue 1]
  504.         }        
  505.  
  506. default texture
  507. ---------------
  508. Description: When a texture is first created, POV-Ray initializes it 
  509.              with default values for all options. The default values 
  510.              are:
  511.  
  512.              color red 0 green 0 blue 0 alpha 0
  513.              ambient .1
  514.              diffuse .6
  515.              phong 0
  516.              phong_size 40
  517.              specular 0
  518.              roughness .05
  519.              brilliance 1
  520.              metallic FALSE
  521.              reflection 0
  522.              refraction 0
  523.              ior 1
  524.              turbulence 0
  525.              octaves 6
  526.              texture randomness (dither) 0
  527.              phase 0
  528.              frequency 1
  529.              color map NONE
  530.  
  531. #default
  532. ---------
  533. Syntax: #default { texture { (modifications to default texture) }
  534.  
  535. Description: The default textures can be modified by using the #default 
  536.              option. Any textures created after this option has been 
  537.              used will use the new defaults as specified in #default. 
  538.              All other defaults not specified will remain the 
  539.              unchanged.
  540.  
  541. dents
  542. -----
  543. Syntax: texture {
  544.            ...
  545.            dents #
  546.         }
  547.  
  548. Description: dents will give the object the appearance of being dented. 
  549.              Values for dents range between 0.0 (no dents) and 1.0 (the 
  550.              dentiest) that determines how dented the surface should 
  551.              be.
  552.  
  553. diffuse
  554. -------
  555. Syntax: texture {
  556.            ...
  557.            diffuse #
  558.         }
  559.  
  560. Description: The diffuse value specifies how the colors in a texture 
  561.              react to light directly shining on it. Higher values make 
  562.              the colors very bright, lower values make the colors more 
  563.              subdued. Values for diffuse range from 0.0 to 1.0. The 
  564.              default value is 0.6.
  565.  
  566. fog
  567. ---
  568. Syntax: fog { color red # green # blue # distance_val }
  569.  
  570. Description: Simulate a uniform haze over the entire scene. Fog should 
  571.              be described outside of all other descriptions. Ie. don't 
  572.              put it inside a texture, object, camera, or shape block.
  573.  
  574. Example: fog { color red 1 green 1 blue 1 200.0 }
  575.  
  576. gradient
  577. --------
  578. Syntax: gradient <axis vector> color_map {...}
  579.  
  580. Description: 
  581.  
  582.  
  583. granite
  584. -------
  585. Syntax: granite color_map {...}
  586.  
  587. Description: This will create a granite pattern based on the supplied 
  588.              color_map. granite will respond to the turbulence 
  589.              keyword, but the default is no turbulence. granite is 
  590.              typically used with small scaling values (2.0 to 5.0).
  591.  
  592. image_map
  593. ---------
  594. Syntax: image_map { file_type "filename" alpha (index # or all) # 
  595.                     map_type # interpolate # (once) }
  596.  
  597. Description: Place a graphic image on a shape as surface coloring.
  598.  
  599. interpolate
  600. ------------
  601. Syntax: image_map { gif "file.gif" interpolate # }
  602.         
  603.         interpolate 1  // Norm dist interpolation  
  604.         interpolate 2  // Bilinear interpolation (best) 
  605.  
  606. Description: Smooths the jaggies on image_maps and bump_maps.
  607.  
  608. ior
  609. ---
  610. Syntax: texture {
  611.           ...
  612.           refraction 1
  613.           ior #
  614.         }
  615.  
  616. Description: The ior is the Index of Refraction. This value determines 
  617.              how far light will bend as it passes through a texture. To 
  618.              be effective, refraction should be set to 1 and the 
  619.              texture must have some transparent colors that use alpha. 
  620.              A value of 1.0 will not bend the light. Some typical ior 
  621.              values are 1.0 for air, 1.33 for water, 1.5 for glass and 
  622.              2.4 for diamond.
  623.  
  624. leopard
  625. -------
  626. Syntax: leopard color_map {...}
  627.  
  628. Description: Uniform spotted color pattern. Turbulence works.  
  629.  
  630. map_type
  631. --------
  632. Syntax: map_type #
  633.  
  634. Description: Changes the mapping type used with image_map, bump_map, 
  635.              and material map.
  636.              0 = Planar
  637.              1 = Spherical
  638.              2 = Cylindrical
  639.              3 = Toroidal (donut)
  640.  
  641. marble
  642. ------
  643. Syntax: marble color_map {...}
  644.  
  645. Description: marble creates parallel bands of colors based on the 
  646.              color_map. Adding turbulence will give the appearance of 
  647.              true marble or other types of stones. The default is no 
  648.              turbulence.
  649.  
  650. material_map
  651. ------------
  652. Syntax: material_map { file_type "filename" map_type #  [once]
  653.                        texture {...} texture {...} (...) 
  654.         }
  655.  
  656. Description: Changes the texture on a surface based on the colors in 
  657.              the mapped image.
  658.  
  659. max_trace_level
  660. ---------------
  661. Syntax: max_trace_level #
  662.  
  663. Description: This option will set the number of levels that a ray will 
  664.              be traced. If a ray is reflected or refracted, it creates 
  665.              another ray. This is 1 level. The default value is 5.
  666.  
  667. metallic
  668. --------
  669. Syntax: texture {
  670.            ...
  671.            metallic
  672.         }
  673.  
  674. Description: This keyword specifies that the color of specular and 
  675.              phong highlights will be the surface color rather than the 
  676.              color of the light source. This creates a metallic 
  677.              appearance.
  678.  
  679. octaves
  680. -------
  681. Syntax: octaves #
  682.  
  683. Description: Affects turbulence. Default value is 6. Values range from 
  684.              1 to 16.
  685.  
  686. onion
  687. -----
  688. Syntax: onion color_map {...}
  689.  
  690. Description: onion creates a pattern of concentric circles based on the 
  691.              supplied color_map. By default, onion has no turbulence.
  692.  
  693. phong
  694. -----
  695. Syntax: texture {
  696.            ...
  697.            phong #
  698.         }
  699.  
  700. Description: The phong keyword causes a bright shiny spot on the object 
  701.              that is the same color as the light source. Values for 
  702.              phong range from 0.0 (none) to 1.0 (very bright at the 
  703.              center of the highlight). There is no phong highlighting 
  704.              by default.
  705.  
  706. phong_size
  707. ----------
  708. Syntax: texture {
  709.            ...
  710.            phong_size #
  711.            phong #
  712.         }
  713.  
  714. Description: The value for phong_size determines the size of the phong 
  715.              highlight of the object. The larger the value, the 
  716.              smaller (tighter) the highlight. The smaller the value, 
  717.              the larger (looser) the highlight. Values range from 1.0 
  718.              (very dull) to 250 (highly polished). The default 
  719.              phong_size is 40.
  720.  
  721. reflection
  722. ----------
  723. Syntax: texture {
  724.            ...
  725.            reflection #
  726.         }
  727.  
  728. Description: The value of reflection determines how much of the light 
  729.              coming from an object is reflected from other objects in 
  730.              the scene. Values range from 0.0 (no reflection) to 1.0 (a 
  731.              perfect mirror).
  732.  
  733. refraction
  734. ----------
  735. Syntax: texture {
  736.            ...
  737.            refraction #
  738.         }
  739.  
  740. Description: The value for refraction will affect how light passing 
  741.              through transparent textures is treated. Values range from 
  742.              0 to 1. Lower values will make the transparent portions 
  743.              less transparent. This value will usually be set to 1 with 
  744.              the transparancy amounts controlled by alpha. By default, 
  745.              there is no refraction.
  746.  
  747. ripples
  748. -------
  749. Syntax: texture {
  750.           ...
  751.           ripples #
  752.          }
  753.  
  754. Description: Simulates ripples on a shape's surface.
  755.  
  756. roughness
  757. ---------
  758. Syntax: texture {
  759.            ...
  760.            roughness #
  761.         }
  762.  
  763. Description: The roughness value for a surface determines the size of 
  764.              the specular highlight of that object. Typical values 
  765.              range from 1.0 (Very Rough, large highlight) to 0.0005 
  766.              (Very Smooth, small highlight). The default, if no 
  767.              roughness is specified, is 0.05.
  768.  
  769. specular
  770. --------
  771. Syntax: texture {
  772.            ...
  773.            specular #
  774.         }
  775.  
  776. Description: A specular highlight is similar to a phong highlight, but 
  777.              provides a more credible spreading of the highlights near 
  778.              the object horizons. Values for specular range from 0.0 
  779.              (no highlighting) to 1.0 (bright highlighting). The size 
  780.              of the highlight is determined by the roughness value.
  781.  
  782. spotted
  783. -------
  784. Syntax:
  785.  
  786. Description:
  787.  
  788. tiles
  789. -----
  790. Syntax: texture {
  791.            tiles {
  792.               texture {...}
  793.            tile2
  794.               texture {...}
  795.            }
  796.         }
  797.  
  798. Description: tiles gives an effect similar to checker, but with 
  799.              textures rather than just colors. The textures for tile1 
  800.              and tile2 may also be layered, but only the first layer 
  801.              will be seen.
  802.  
  803. turbulence
  804. ----------
  805. Syntax: texture {
  806.            ...
  807.            turbulence #
  808.         }
  809.  
  810. Description: turbulence will distort a pattern so that it is not so 
  811.              "perfect". Typical values for turbulence range between 
  812.              0.0 and 1.0, but any value can be used.
  813.  
  814. waves
  815. -----
  816. Syntax: waves #
  817.  
  818. Description: Simulates bumpy waves on a shape's surface.
  819.  
  820. wood
  821. ----
  822. Syntax: wood color_map {...}
  823.  
  824. Description: wood used the supplied color map to create concentric 
  825.              cylindrical bands of color centered on the Z axis. Small 
  826.              amounts of turbulence will make the texture look more 
  827.              like real wood. There is no turbulence by default.
  828.  
  829. wrinkles
  830. --------
  831. Syntax: texture {
  832.           ...
  833.           wrinkles #
  834.         }
  835.  
  836. Description: wrinkles is a bump pattern that will give the appearance 
  837.              of a wrinkled surface. Values for wrinkles range from 0.0 
  838.              (no wrinkles to 1.0 (very wrinkled)
  839.