Previous:Color Maps Main Index Next:Image Maps

#### Pigment Maps and Pigment Lists

In addition to specifying blended colors with a color map you may create a blend of pigments using a `pigment_map`. The syntax for a pigment map is identical to a color map except you specify a pigment in each map entry (and not a color).

The syntax for `pigment_map` is as follows:

PIGMENT_MAP:
`
  pigment_map{
` PIGMENT_MAP_BODY `}`
PIGMENT_MAP_BODY:
  PIGMENT_MAP_IDENTIFIER
| PIGMENT_MAP_ENTRY...
PIGMENT_MAP_ENTRY:
`
  [
` Value PIGMENT_BODY `]`

Where Value is a float value between 0.0 and 1.0 inclusive and each PIGMENT_BODY is anything which can be inside a `pigment{...}` statement. The `pigment` keyword and `{}` braces need not be specified.

Note that the `[]` brackets are part of the actual PIGMENT_MAP_ENTRY. They are not notational symbols denoting optional parts. The brackets surround each entry in the pigment map. There may be from 2 to 256 entries in the map.

For example

      sphere {

        <0,1,2>, 2

        pigment {

          gradient x       //this is the PATTERN_TYPE

          pigment_map {

            [0.3 wood scale 0.2]

            [0.3 Jade]    //this is a pigment identifier

            [0.6 Jade]

            [0.9 marble turbulence 1]

          }

        }

      }

When the `gradient x` function returns values from 0.0 to 0.3 the scaled wood pigment is used. From 0.3 to 0.6 the pigment identifier Jade is used. From 0.6 up to 0.9 a blend of Jade and a turbulent marble is used. From 0.9 on up only the turbulent marble is used.

Pigment maps may be nested to any level of complexity you desire. The pigments in a map may have color maps or pigment maps or any type of pigment you want. Any entry of a pigment map may be a solid color however if all entries are solid colors you should use a `color_map` which will render slightly faster.

Entire pigments may also be used with the block patterns such as `checker`, `hexagon` and `brick`. For example...

      pigment {

        checker

        pigment { Jade scale .8 }

        pigment { White_Marble scale .5 }

      }

Note that in the case of block patterns the `pigment` wrapping is required around the pigment information.

A pigment map is also used with the `average` pigment type. See "Average" for details.

You may not use `pigment_map` or individual pigments with an `image_map`. See section "Texture Maps" for an alternative way to do this.

You may declare and use pigment map identifiers but the only way to declare a pigment block pattern list is to declare a pigment identifier for the entire pigment.

Previous:Color Maps Main Index Next:Image Maps