Technically average is not a pattern type but it is listed here because the syntax is similar to other
patterns. Typically a pattern type specifies how colors or normals are chosen from a pigment_map , texture_map ,
density_map , or normal_map , however average tells POV-Ray to average together
all of the patterns you specify. Average was originally designed to be used in a normal statement with a normal_map
as a method of specifying more than one normal pattern on the same surface. However average may be used in a pigment
statement with a pigment_map or in a texture statement with a texture_map or media density
with density_map to average colors too.
When used with pigments, the syntax is:
AVERAGED_PIGMENT:
pigment
{
pigment_map
{
PIGMENT_MAP_ENTRY...
}
}
PIGMENT_MAP_ENTRY:
[ [Weight] PIGMENT_BODY ]
Where Weight is an optional float value that defaults to 1.0 if not specified. This weight
value is the relative weight applied to that pigment. 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
pigment {
average
pigment_map {
[1.0 Pigment_1]
[2.0 Pigment_2]
[0.5 Pigment_3]
}
}
All three pigments are evaluated. The weight values are multiplied by the resulting color. It is then divided by
the total of the weights which, in this example is 3.5. When used with texture_map or density_map
it works the same way.
When used with a normal_map in a normal statement, multiple copies of the original surface normal are
created and are perturbed by each pattern. The perturbed normals are then weighted, added and normalized.
See the sections "Pigment Maps and Pigment Lists", "Normal Maps and Normal Lists",
"Texture Maps", and "Density Maps and Density Lists" for more information.
|