This short guide covers the Zbrush-to-Maya pipeline. It will help you export your zbrush sculpts to Maya, without losing any detail using displacement maps.
The second part of this tutorial covers using the LayeredNode in Maya to combine displacement maps with tiling detail maps.
This guide assumes you have a working knowledge of zbrush, and the concepts of UVs and textures. If I leave you hanging without a specific explanation, there are a number of tutorials available for any of these topics, which can be found with a google search.
There are a couple ways to do Zbrush-Maya displacement, including using 32bit displacement. They all have their pros and cons, but this guide covers my personal preference, which is a more traditional displacement map applied to the model.
For reference, 32 Bit displacement uses a more accurate method of storing displacement information, and can be generated natively by zbrush. There are two drawbacks to 32 bit displacement. The first, if you can even call it a drawback, is that the displacement is scale dependent, so it requires extra work if you have to scale your model at all once you have imported it into Maya.
The second drawback is the main reason that I continue to use traditional 16 bit displacement, which is that 32 bit displacement cannot be layered with other displacement maps, for instance, highly detailed tiling skin maps that mimic the surface of skin. So 32 bit displacement limits the detail resolution to both the zbrush polycount, and the size of the displacement map.
Step 1 – UV’s and Map Resolution
Step 1 is giving the object we are going to render UV’s. For test renders, still renders, learning renders, or exploring renders, it is fine to have non-optimized UV’s. For this project, I am just using zbrush UVMaster, which does a fine job of unwapping the model.
The only other consideration here is that we are going to give the model tiling displacement detail maps on top of the initial displacement map, so we need to be able to hide the UV seams from the camera. For characters, this typically means hiding the seams under clothing or behind the back, where the camera is less likely to see.
For this render, I used UVmaster to protect the front of the model, and moved the UV seams to the back. This way, there will be no rendering seams visible where the tiling detail displacement meets the edges of the UV’s.
After UV’s have been applied, we have to determine our map size. We don’t have to worry about resources too much, since this isn’t a game and since this is a still render. Our map size will mostly be determined by how poly-dense the object it. For a general rule of thumb, I have found these to be good indicators of necessary resolution:
Step 2 – Create the displacement map
Open the displacement editor in the zbrush sidebar and use these settings:
Before generating the displacement map, you will have to choose which subdiv level to generate from. Choose a level that is high enough to generally support the silhouette. Generating a displacement from too low of a subDiv will stress the displacement map (make it do too much) and cause errors and artifacts. Generally if I am working on an 8 million poly or higher character, I will generate at about 250,000-400,000 polygons.
When you have appropriate UV’s and have set the map size to the appropriate resolution, you can go ahead and Create and Export Map. Export the map at as a .TIF, although zbrush doesn’t give you a choice.
You can also export the model from Zbrush as a .OBJ. Make sure to export the model at the same subDiv level as the one you generated the Displacement map from.
Step 3 – Importing to Maya
There are a couple of things to consider in Maya. First is the issue of Scale. 32 bit displacement is scale dependent, but we are using 16 bit displacement, so it is up to you if scale is a concern. Scale does affect other aspects of the scene however, including some shader aspects (such as SSS), and some render aspects, such as lighting and occlusion.
For this reason I always try to use a somewhat accurate scale. If you have questions about setting and using scale, google it. For characters, the best way to measure scale is by measuring the head, and then scaling all the other elements to match. For reference, the average human head is about 55cm.
The other things to consider about importing zbrush OBJ’s:
First, to soften the edge normals, with the object selected:
Second, to make sure reflections and refractions are activated for an imported object:
Step 4 – Applying Vray Displacement
The final step is applying vray displacement.