home *** CD-ROM | disk | FTP | other *** search
- Ray tracing is known for the dramatic way it depicts reflection, refrac-
- tion 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.
-
- The 'normal {...}' statement is the part of a texture which defines the
- pattern of normal perturbations to be applied to an object. Like the pig-
- ment statement, you can omit the surrounding texture block to save typing.
- Do not forget however that there is a texture implied. For example:
- this... can be shortened to this...
- object { object {
- My_Object My_Object
- texture { pigment {
- pigment { color Purple
- color Purple }
- } normal { bumps 0.3 }
- normal { bumps 0.3 } }
- }
- }
-
- NOTE: 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 most complete form for defining a normal is as follows:
- normal {
- NORMAL_IDENTIFIER
- NORMAL_PATTERN_TYPE
- NORMAL_MODIFIERS
- TRANSFORMATIONS...
- }
-
- Each of the items in a normal are optional but if they are present, they
- should be in the order shown above to insure that the results are as expec-
- ted. Any items after the NORMAL_IDENTIFIER modify or override settings gi-
- ven in the IDENTIFIER. If no identifier is specified then the items modify
- the normal values in the current default texture. TRANSFORMATIONs are tran-
- slate, rotate and scale statements. They apply only to the normal and not
- to other parts of the texture. They should be specified last.
-