Previous:Bump Maps Main Index Next:Ambient
The finish properties of a surface can greatly affect its appearance. How does light reflect? What happens in shadows? What kind of highlights are visible. To answer these questions you need a finish
.
The syntax for finish
is as follows:
- finish {
[FINISH_IDENTIFIER] [FINISH_ITEMS...] }
- ambient
COLOR | diffuse
Amount | brilliance
Amount |
- phong
Amount | phong_size
Amount |
- specular
Amount | roughness
Amount |
- metallic
[Amount] | reflection
COLOR | reflection_exponent
Amount |
- irid {
Irid_Amount [IRID_ITEMS...] }
| crand
Amount
- thickness
Amount | turbulence
Amount
The FINISH_IDENTIFIER is optional but should proceed all other items. Any items after the FINISH_IDENTIFIER modify or override settings given in the FINISH_IDENTIFIER. If no identifier is specified then the items modify the finish values in the current default texture. Note that transformations are not allowed inside a finish because finish items cover the entire surface uniformly. Each of the FINISH_ITEMS listed above is described in sub-sections below.
In earlier versions of POV-Ray, the refraction
, ior
, and caustics
keywords were part of the finish
statement but they are now part of the interior
statement. They are still supported under finish
for backward compatibility but the results may not be 100% identical to previous versions. See "Why are Interior and Media Necessary?" for details.
A finish
statement is part of a texture
specification. However it can be tedious to use a texture
statement just to add a highlights or other lighting properties to an object. Therefore you may attach a finish directly to an object without explicitly specifying that it as part of a texture. For example instead of this:
object {My_Object texture{finish{phong 0.5}}}
you may shorten it to:
object {My_Object finish{phong 0.5}}
Note however that doing so creates an entire texture
structure with default pigment
and normal
statements just as if you had explicitly typed the full texture{...}
around it.
Finish identifiers may be declared to make scene files more readable and to parameterize scenes so that changing a single declaration changes many values. An identifier is declared as follows.
- #declare
IDENTIFIER =
FINISH |
- #local
IDENTIFIER =
FINISH
Where IDENTIFIER is the name of the identifier up to 40 characters long and FINISH is any valid finish
statement. See "#declare vs. #local" for information on identifier scope.
Previous:Bump Maps Main Index Next:Ambient