From the POVray manual:
Ray-tracing is known for the dramatic way it depicts reflection, refraction and
lighting effects. Much of our perception depends on the reflective properties of
an object. Ray tracing can exploit this by playing tricks on our perception to
make us see complex details that aren't really there. Suppose you wanted a very
bumpy surface on the object. It would be very difficult to mathematically model
lots of bumps. We can however simulate the way bumps look by altering the way
light reflects off of the surface. Reflection calculations depend on a vector
called a surface normal vector. This is a vector which points away from the
surface and is perpendicular to it. By artificially modifying (or perturbing)
this normal vector you can simulate bumps. This is done by adding an optional
normal statement.Note that attaching a normal pattern does not really modify the
surface. It only affects the way light reflects or refracts at the surface so
that it looks bumpy.
The following code is written into the normal section of each object in the
.pov file (the actual values may vary depending on the object type):
normal {granite 0.0 scale 1.0}
The perturbation of the normal vectors is turned off by default. The
first expression indicates the type of perturbation function that is to be used
(called a PATTERN_TYPE in POVray). There are about 30 different functions
(or patterns)
available, but only a few will be demonstrated here:
granite, bumps, bozo, crackle and
agate.
The floating point numbers after the pattern is the intensity, a
value of 0.0 turns the perturbation off. The scale can be thought of as
the amount the perturbation is stretched out on the surface, see examples below.
Please note that all examples below were rendered with +A0.2
antialiasing because the effects can be quite small. The finish settings are the default values.
The image as displayed in DINO
|
The POVray rendered image with the default normal settings from above (no
perturbation)
|
granite 0.5 scale 1.0
|
granite 0.8 scale 3.0
|
bumps 0.3 scale 0.3
|
bozo 0.8 scale 0.5
|
crackle 1.2 scale 1.5 turbulence 0.5
|
agate 0.4 agate_turb 4 scale 3.0
|
(c) 2001-2005 Ansgar Philippsen
|