| 
  Syntax :function Width, Height { FUNCTION_BODY } 
  Not a real pattern, but listed here for convenience. This keyword defines a new 'internal' bitmap image type. The 
 pixels of the image are derived from the Function_Body, with Function_Body either being a regular function, a pattern 
 function or a pigment function. In case of a pigment function the output image will be in color, in case of a pattern 
 or regular function the output image will be grayscale. All variants of grayscale pigment functions are available 
 using the regular function syntax, too. In either case the image will use 16 bit per component 
 
  Note: functions are evaluated on the x-y plane. This is different from the pattern 
 image type for the reason that it makes using uv functions easier. 
 
  Width and Height specify the resolution of the resulting 'internal' bitmap image. The image is taken from the 
 square region <0,0,0>, <1,1,0> 
  The functionstatement can be used wherever an image specifier liketgaorpngmay be used. Some uses include creating heightfields from procedural textures or wrapping a slice of a 3d texture or 
 function around a cylinder or extrude it along an axis. 
  Examples: 
 
   plane { 
      y, -1 
      pigment { 
         image_map { 
            function 10,10 { 
               pigment { checker 1,0 scale .5  }
            }
         }
         rotate x*90
      } 
   }
   height_field {
      function 200,200 {
         pattern {
            bozo
         }
      }
      translate -0.5
      scale 10
      pigment {rgb 1}
   }
  Note: that for height fields and other situations where color is not needed it is 
 easier to use function n,n {pattern{...}}thanfunction n,n {pigment{...}}. The pattern 
 functions are returning a scalar, not a color vector, thus a pattern is grayscale. |