Displacement

The Crowd Render Proxy allows to add Displacement on Entities geometry to add details at render time. At render time, displacement will be assigned the same way than surface shaders: the render plugin will look for a Renderman Displacement Nodes with the same name than the one set in the Character File and assign it to the created geometry. As Arnold Displacement parameters can not be stored in the Character Geometry File (.fbx or .gcg), displacement information must be stored at the Character File level.


Examples of Displacement Mapping with different displacement amounts

Creation

Displacement Shaders are created automatically when a displaced mesh is imported to the character geometry mapping.
 
However, a Displacement Shader can be added manually:
  • open the Character File in the Character Maker and go to the Geometry Tab
  • select the Mesh you want to displace in the Main Workspace
  • drag and drop a Shader Node from the Asset Nodes tab
  • enter a name for the Shader
  • enter "displacement" as the category of the Shader

 
Example of a Displacement Shader applied to a Shading Group Node

Configuration

It is possible to configure a Displacement Shader by linking some specific Renderer Attributes to the Shading Group Node.
Here is an example of Renderman Attributes which need to be set via the Renderer Attributes (those parameters are the same attributes defined by Renderman for each mesh in Maya):

Attribute Name Description
renderman.displacementbound.sphere.float Determines the maximum displacement amount which occurs at places where the displacement map is white. (notice that this value can also be controlled with a ppAttribute). If not set, the value will be 0 and no displacement will be visible.


Example of Renderer Attributes applied to a Displacement Shader

Notice that the gain can be controlled with a regular Shader Attribute and plugged to the PxrDisplace gain attribute