PDA

View Full Version : Normal and Displacement Maps


Kinematics
11-09-2010, 09:27 AM
Hey guys, I tried goggling around but I've got a headache and I just want clarification about a few things. I am using Maya 2010 but I assume that the work flow is the same everywhere.

I made a basic model in Maya 2010, brought that into Zbrush and had about 6 layers of smooth, and started working on it. Then using the UV master I laid out the UVs really easily which was so fantastic and exported the model back to Maya. It seems to work and my general plan to rig is basically like this.

Level 1 -
Base mesh for rigging and used as a Wrap Deformer

Level 2 -
Mesh to be controlled by Wrap Deformer from level 1 and Displacement Maps and Normal Maps to take model to Level 6 at this point.

I figured this would allow an animator to work on the base mesh and if the model does change to a certain degree. All I need is a blend shape to switch the level 2 mesh and everything should work nicely. Is this what everyone is basically doing?

As for the next question -

For the Displacement. It can't replicate whatever we see in Zbrush in Maya sometimes due to resolution of the displacement maps right? So we need the normal map to continue the remaining detail?

If so, how do i get the normal map to all add minor details from where the displacement left off? or are they both created at the same time? Since the Map Exporter seems to create it all at the same time.

Another thing is the SurfaceNoise -> if you tried using the noise function, it looks great but when you hit apply to mesh, the resolution of the mesh basically will never be high enough to support the noise detail and the end result looks different when that button is hit.

Is there a way around this so you get exactly what you see? I've seen the tutorial where they made a tile-able cobble path but this situation is a little different ain't it as we can't use the Normals Matcap?

How do you add rust and all that detail on a character and leave that to the normal map?

The exporter plugin that pixologic released is awesome but it seems to just calculate everything based of the difference from level 2 till 6? Am I wrong?

Thanks in advance for the clarification. I just want to better understand the Zbrush pipeline in production.

cgbeige
11-09-2010, 02:49 PM
The displacement map is meant to be used solo, not in conjunction with the normal map. If you wanted to do that, it would be done like this:

- make a displacement map that uses level 1 as your base and, let's say, level 3 as your target mesh.
- make a normal map that uses level 3 as your base and level 7 as your target.

That way, the displacement will bring up the detail enough to add shape but the normal map can add the detail. But, since normal maps don't affect occlusion, there's not really any benefit to this approach over using a normal map and just exporting level 3 of the mesh. It's overkill.

The best way is to export your displacement map at 16- or 32-bit and make sure that your base mesh level has enough detail to give the overall XYZ shape (remember that displacements are only up and down). Of course, this would all be made easier by the addition of vector displacement maps to ZBrush. That's why they're important.

Normal maps should only be used if you don't care about detail AO (like for a small background object, a game asset that will used baked AO, etc).

Kinematics
11-09-2010, 06:17 PM
Hey Cgbeige, thanks so much for your reply as usual! =) Could you clarify the sentence below?

But, since normal maps don't affect occlusion, there's not really any benefit to this approach over using a normal map and just exporting level 3 of the mesh. It's overkill.

Do you mean that since normal maps do not affect occlusion it would be better to just export the mesh at level3? Just a tad confused on that bit.

As for the Noise system in zbrush. Do you know anything about that? Because for example, I have a brick I wish to create. Start of with a simple cube...and subdivide that multiple times, maybe even level 10. If I assign the noise generator and then convert that detail to mesh, there will never be enough detail carried into the polygons.

How do you add the noise and just turn that into a normal map? I'd think it would be good for my model for things like cloth texture etc where I don't need to have ambient occlusion.

cgbeige
11-09-2010, 08:15 PM
if you want an incredible amount of detail, you'll have to HD geometry and use noise as a brush modifier:

http://dl.dropbox.com/u/7990437/hdbrushnoise.mov

HD geometry works with map export but not much else. It's sort of half-supported.

As for what I said about AO, I meant that normal maps are best avoided if you're going to use displacements anyway. The only use for them is to fake detail in games. If you are using them in animation that will have an AO pass, just use displacement maps. Look at what the AO looks like for something that uses both a displacement and a normal map:

http://grab.by/grabs/327174177be6ae578bf9d4ec4383b548.png

http://grab.by/grabs/adb5ec56905b73e97bea3ce0ab1520eb.png

If you composited that, it would look wrong.

Kinematics
11-10-2010, 04:02 AM
Hey CgBeige, Thanks so much for that insight! I've posted this on the zbrush forums in hopes to see if someone out there has a way. I'll just copy and paste the question here but if it's not possible then I guess what you've suggested is the best way.


Using Surface->Noise Effectively?

Guys, How do you go about using the Tool->Surface->Noise effectively on a 3d model. Say its a simple brick I wish to add noise to. How do I then transfer this to normal maps or displacement maps?

The reason I am having issues doing so is that when applying the Noise. It looks good but upon hitting the "apply to mesh" button, the resolution of the model causes me to loose most of that detail and softens up the noise which gives me a very different result.

I've tried using HD Geometry and then applying the noise but I don't think that is how it really works. Is there a way around this? I've been recommended to use the noise brush....but is there a way using this method?

cgbeige
11-10-2010, 03:09 PM
Pixologic needs to make ZBrush a 64-bit app and just do away with the HD geometry hack, since it's so poorly supported (it doesn't work with layers and a bunch of other stuff).

MagmaPixel
11-20-2010, 07:16 AM
Agreed 100% Zbrush NEEDS to be 64bit.

Aside from that, Kinematics, If you are unable to get the required amount of noise to transfer at 10 subdivision levels you are surely doing some major closeups. There may be better options outside of Zbrush, for what you want.

-Procedural textures tied to your shaders in Maya, Max, etc.
-Make a tileable noise texture in Photoshop and apply that to your shader.
(You could even layer up multiple noise textures with a layered shader.)

If you create these in grayscale you can apply them as a displacement. It'll show up in your final render.

Edit: Also, if you prefer a normal map, you can turn a grayscale image into a normal map outside of Zbrush, but I haven't done it in years. You'll have to find that on your own.

CGTalk Moderation
11-20-2010, 07:16 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.