ZBrushCentral

Creating Displacement Maps in ZBrush for 3ds max?

Hey,

I wanted to use ZBrush to create displacement maps to add some higher level detail to my models once I’m done with them in max. Like for example sculpting detailed lips would probably be a lot easier then trying to model it by hand in max and would probably also look better than just eyeballing bump maps using Photoshop.

I’ve run into a problem tho, which might be me misunderstanding the purpose and function of ZBrush and the way it creates (displacement) maps.

I’m not sure about the exact workflow I am supposed to use to yield good and exact results.

So far I’ve tried the following:

base-model.png
(using this old head mesh of mine I found for testing)
First, I used the unwrapped basemesh before Turbosmooth and exported it as OBJ, imported it into ZBrush, subdivided it up to a level that allows some fine details (for testing only went up to about 2million points), added two basic zAdd and zSub strokes and a few finer pores to see how the maps will turn out:
zbrush_highest-subd.png

Turned the subdivison down to 1 ie. my basemesh, went to displacement map and create&export the displacement map with the following settings:
displacement_settings.png

The result was not what I expected. I thought it would only add the strokes I made to the displacement map depending on the middle value (0.5), so zAdd strokes would be brighter, zSub strokes would be darker. That was the case, but it also added a lot of displacement in areas that were completely untouched as well as having extremely low details in the finer pores for a 2K map. If I now use the map in 3ds max it will of course displace the strokes correctly, but also deform the rest of the mesh.

DM_head_lowpoly_SD1.png

Then I tried exporting the basemesh turbosmoothed to my target iterations during rendertime, imported that into ZBrush, subd’d to about 2 million points, zAdd and zSub a few strokes here and there and created the displacement map at subd level 1 (ie. my 48k points turbosmoothed mesh).

base-model_TS3.png

The result slightly improved on the unnecessary displacement in areas that i didn’t touch in ZBrush (although still clearly present) and on the level of detail of the map, but gave every stroke I made a sort of “negative shadow”. You can see what I mean in the map below. Instead of just going from the mid value to a brighter value in case of the zAdd stroke, it would first go down way lower than mid level and then go into the brighter levels. Vice versa for the zSub stroke.

DM_head_lowpoly_SD4.jpg

Where do I go wrong or what (steps?) am I missing?

If I have to take the map into Photoshop to clean up the unnecessary displacement and the "negative shadows"and add more detail, then I might as well just create the map in Photoshop in the first place and skip ZBrush entirely.

Thanks in advance.

PS: I would have just posted smaller pictures and linked to bigger ones, but that isn’t allowed, so, I hope you like scrolling or have a 1440p+ monitor.

Attachments

DM_head_lowpoly_SD1.png

DM_head_lowpoly_SD4.jpg

You need to restore your original base mesh before creating the displacement. This is so that only the sculpted areas show on the map.

  1. Go to the lowest subdivision level.
  2. Store a morph target (Tool>Morph Target>store MT).
  3. Import the original base mesh.
  4. Generate the displacement map.
  5. Switch the morph target before switching to higher subdivision levels, for example to generate texture maps from polypaint or continue sculpting.

HTH,

Wow, thanks a lot, that actually does the trick.

I’ve watched and read like 2-3 hours worth of different tutorials on how to create displacement maps with ZBrush and while some created a morph target (before creating the map), none of them ever reimported the mesh.

I’ll be honest tho, I don’t fully understand ZBrush’s logic behind it. Does the basemesh get altered by subdividing it? While I understand that changes to higher subdivisions also affect lower ones, I didn’t think that the subdivision itself would also be passed down to the lowest mesh, which is what I assume causes the - as I called it - “unnecessary displacement” when creating the map on the lowest level without reimporting the mesh. Is this so that the generated displacement map can be used on the basemesh without any additional subdivisions, to kinda get the rough shape of the higher level mesh?

I’ve been wrestling w/ making good Disp/Normal maps myself, and attached is something that may help (even though its for Maya). I don’t use Max, but there may be some settings similar to Maya’s Approx Editor that need to be adjusted. I could be wrong, but you may need a Normal map for the finer detail.32 bit.png