TYPE: VOP
TITLE: Texture Model VOP

This operator performs a lighting model calculation that generates a
color. The available lighting models are:

~c(
     Constant              (string "constant")
     Head Light            (string "headlight")
     Lambertian            (string "lambert")
     Oren-Nayar            (string "oren")
     Phong                 (string "phong")
     Blinn                 (string "blinn")
     Anisotropic Specular  (string "anisotropic")
     VEX Specular          (string "specular")
~c)

Constant simply assigns the diffuse (diff) value to the color. Like
Head Light, Lambertian, and Oren-Nayar, it ignores specular color.
Constant and Head Light also ignore the ambient color.

Oren-Nayar, Phong, Blinn, and VEX Specular use only the first
roughness parameter (urough) to simulate surface roughness.

Anisotropic Specular, also known as the "Ward model", is the only
model that also uses the second roughness parameter (vrough). However,
if "urough" equals "vrough", the specular highlight becomes
isotropic.

Avoid using the Anisotropic Specular model on non-subdivided polygonal
geometry because it will look flat shaded.

Typically, applying a lighting model is the last thing you do before
connecting the resulting color to the Output operator's "Cf" input.

If the ambient, diffuse or specular map is specified, the map will
be used instead of the provided color. Bumping is applied via the
Bump Map (bumpmap) input as long as the Bump Height (bumpheight) value
is non-zero. If you do not need to apply bumping, or you require no
texture maps as color providers, use the simpler Lighting Model
operator instead.

To apply a texture as a decal, assign it to the Diffuse Map input and
set the wrapping mode to "Decal".

The Filter Type (ftype) and Filter Width (fwidth) inputs control the
softness of the applied texture (and bump map) if a texture map is
provided.

If the Normal (N) input and the texture coordinate (s and t) inputs
are not connected, the global variables by the same names will be used
instead. Typically, you will leave "N" alone unless you want to
displace the surface before the final color calculation (see Bump
Noise). You will likely use the Shading Layer Parameter as the input
for "s" and "t". If you need to access the global variables
directly, they are available from the Global Variables operator.

See also: Bump Noise(bumpnoise), Global Variables(global),
          Lighting Model(lighting), Texture

