This is RenderMan 21 Documentation you are viewing. The Rmanwiki home page will redirect you to the current documentation.

Page tree


This is a displacement plugin that displaces the surface point P in the current space. It supports both scalar and vector inputs. It sums up all the connected scalar and vector inputs before it does the actual displacement. 

All displacement transform related functions are in PxrDispTransform pattern. 

All displacement layering function are PxrDispScalarLayer and PxrDispVectorLayer pattern. 

Instead of including all the functions in one big displacement plugin, this modular design separates the transform and layering, providing more flexibility and efficiency for supporting different production displacement workflows.

You need to set your displacement bound in order to see displacement. Displacement bound is automatically set in RenderMan For Maya.

Displacement Types

There are two types of displacement, scalar and vector: The source of both types of displacement can be procedural or textured.

  • Scalar displacement is a float displacement. It has only one float value. Thus it displaces P either up or down.
  • Vector displacement displaces P in all three dimensions, XYZ.

These examples below show using the same source of displacement values yield different result using the scalar (using a float, e.g. resultF, resultR, ...) vs vector displacement (using a vector, e.g.  resultRGB, resultXYZ).


Input Parameters


If checked, displacement is enabled. This is useful for debugging where we sometime want to turn off displacement.


Gain for the displacement. If it is zero, there will be no displacement. Higher amounts create larger displacement. Be aware this may cause problems if it exceeds the set Displacement Bounds and it will print a warning at render time.

Scalar Displacement

Scalar displacement input. This is a float displacement. We can connect this to a PxrTexture pattern node or any float pattern node. 

Vector Displacement

Vector displacement input. Vector displacement data is a three channel data file,  XYZ. We can connect this to a PxrTexture pattern node or any pattern node that outputs a vector or color.

Model Displacement

Model Displacement is a vector displacement for the model. This is added to the Vector Displacement above.

It is not uncommon where the modeler sculpts the model with either Mudbox or ZBrush. Then the shading artist look develops it by procedurally creating the vector displacement for more details.  So providing both Model Displacement and Vector Displacement allows this flexible workflow.


Hints on performance:

When displacing objects, RenderMan uses a screen projection to dice objects finely into micropolygons. This typically needs no user adjustment and handles level of detail automatically as objects further away are covered by fewer pixels and diced more coarsely.

There are two ways to adjust this should it not meet your requirements.

  1. Add a new dicing strategy to the object, Dice Strategy > Spherical
  2. Decrease the size of the polygons by adding, Micropolygon Length and reducing this number slowly (decreasing the size of the resulting polygons).