Page tree


Export OBJ and OpenEXR from ZBrush

  •  Shift+d to step down to the lowest subdivision.

  •  Hit the Switch button in Morph Target to switch to the original model.  If you don't have a Morph Target setup, please consult ZBrush documentation on how to set up a Morph Target.

The original model is a plane for this example:

  • In Preferences, Import/Export, Vector Displacement Map, set the Tangent FlipAndSwitch to 43.  There are 48 different vector displacement because a red channel for a renderer may be up while down for the another renderer.  RenderMan is 43.

Recent changes meant a change from Tangent FlipAndSwitch 41, if your displacement is not correct, you may need this setting rather than 43.

  • On the Tools, Vector Displacement Map, set vd Tangent on, set vd 32 Bit to export a 32-bit map otherwise it is 16-bit, set vd SUV for smooth UV to on, vd Normals to on. 

  • Click on CreateAndExport VDMap to export the maps and OBJ. The maps will be exported as OpenEXR.

Import OBJ and Add Subdiv Scheme

For some subdivision surfaces, it may be helpful to add the attribute "Dice Watertight" to resolve seam issues. This may incur a memory overhead so it is not on by default.

  • Import the OBJ you just exported from ZBrush.  For its shape node, add Attributes|RenderMan|Subdiv Scheme:

Assign Displacement Shader

  • Create a PxrTexture node. Set the Filename to your exported ZBrush EXR map. Keep all parameters at their defaults.
  • Create a PxrDispTransform node. Set Displacement Type to ZBrush Vector and Vector Space to Tangent.

  • Create a PxrDisplace node (this is the displacement shader that actually displaces your surface).
  • Connect PxrTexture's output Result RGB to PxrDispTransform's Disp Vector.
  • Connect PxrDispTransform's Result XYZ to PxrDisplace's Disp Vector. Your graph should look like this:

  • Add PxrSurface, assign it to the model and add some lights, set the displacement bound appropriately, and render!