Page tree

Versions Compared

Key

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

...

  • Find the displacement bound in the PrmanObjectStatements node under "primAttributes.displacementbound"
  • Set "Sphere" to a value greater than zero, something large enough to encapsulate your displacement but small enough that you won't cause the renderer to think that surface extends beyond it's intended final bound. If the bounds are too small you will see clipping or missing pieces. If too large, it may displace the object before it's necessary. We will automatically tighten those bounds afterwards to be more efficient. So better to err on too large than too small. A value of 0 (zero) disables displacement for the object.

Image Added


Note that a too large bound may cause the initial tessellation to happen early but this bounding box is then tightened afterwards. A too small bound will result in clipping or artifacts. RenderMan will print a warning for bounds that are too large or too small by a minimum factor of 10 to help you adjust

Below is a typical network for adding displacement to your object:

Image Added

  • Create a Network Material
    • Make a port for the Bxdf or surface shading using Add Terminal in the node
    • Create a second port for Displacement using the same menu
  • A PrmanShadingNode is used as the surfaceShader, typically PxrSurface type
  • A second PrmanShadingNode is a PxrDisplace type
  • A pattern out (float for scalar displacement or RGB for vector) is connected to the displacementShader

Render to see your result. Be sure you have a MaterialAssign after the Merge node  with the correct CEL path to your object(s) and the network material location set to the NetworkMaterial