Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The surface positions and normals are in object space, which is convenient since the displacements scale and rotate along with the object.  In the rare cases where displacements in world space are preferred, the amplitude simply needs to be scaled by the length of the normal transformed to world space.  (If the master object is instantiated to more than one instanced object, then the world transform of the first instance is used.)

Note that an object is only displacement if three conditions are fulfilled:  1) the object needs to have a Displace shader, 2) the object needs to have an Attribute "displacementbound" greater than 0, and 3) the object's Attribute "trace" "displacements" needs to be 1 (which it is by default).

After the displacement has been done, any smooth analytical normals that the original surface may have had (for example a smooth subdivision surface or NURBS patch) are no longer valid – they do not correspond to the displaced surface.  However, each micropolygon has a geometric normal Ngn.  In addition, for some surface types, a smooth shading normal will be automatically computed for each ray hit – this is done by considering the orientation of not only the micropolygon that the ray hit, but also adjacent micropolygons.  For other surface types – most prominently displaced polygon meshes and displaced pretessellated subdivision surfaces – the shading normal is the same as the geometric normal, i.e. facetted.  (We plan to provide smooth shading normals also on these surface types in a future release.)

...