Lead Texture Artists
Layered Displacement in Renderman 22
Megascan materials and Zbrush displacement using layered displacement in Renderman. Layering displacement is something we do in VFX on a regular basis. There is a fork in the road where we must decide whether to add features in sculpting or as textures. Usually larger and mid-sized features come from the sculpting process. I generally like to add finer detail as textures using Mari. It’s easier to procedurally add some effects than to sculpt them. Also if you use material type textures you get the utility maps for free. You can apply them in sync using tiled or triplanar projections.
“Layered Displacement in Renderman! the bread and butter in VFX?”
Using Displacement in Renderman
The pxrDisplace node is what we will use to hook up displacement to our shader. Its connected to a shading group node. In Maya hypershade, you can either do it manually or select an already created shading group and create the node and it will auto connect for you. The displacement node can use both scalar and vector displacement but not at the same time. Our example will use scalar displacement from Zbrush.
About displacement Bounds
In Renderman, we have a displacement bound attribute on our objects, it will act as a limit for the displacement. Its there so you don’t use too much memory and effort and trace into infinity. By default, it’s set quite low and it will depend on your scene scale. Sometimes if the object is large you might have to increase this setting or you risk getting artifacts.
Here is an example of a sphere displaced with a checker texture and as you can see it renders with strange artifacts.
Increasing the bound will fix this.
We can also add displacement in layers and we have a special node for this. I usually add extracted displacement from 3D sculpt with added fine textural details on top as a layer. The node works in a similar fashion as the displace node but with added layer capabilities you can also choose between different blending modes such as add, subtract and over.
Not All Displacements Are Created Equal
In Mudbox you get a displacement map that is based around zero and I usually extract displacement using Zbrush where I set it to be based around 0.5 value. How do you go about unifying the values? pxrDisplacement transform to the rescue!
This utility node helps us to transform values into the default zero value that Renderman is expecting.
Now let’s take a look at all of this in action…..
We have now learned how to add sculpted and textured displacement in Renderman using the layer displacement node and utilities. Adding textured displacement as layers on top gives us the freedom to change details more easily, and material resources such as Megascan, texture XYZ makes is easier to get that extra bit of realism without the extra effort.
“Want me to cover something specific? Leave your comments below or use #askmeshmen on twitter ”