Normal vs. Displacement

Just wanted to make sure that I’m understanding the tutorial videos I’m watching - Normal Maps give one the illusion of geometry, Displacement Maps create actual geometry?

So, if I’m doing something for real-time, probably use Normal Maps as long as I can get away with it visually (retaining good image quality while keeping poly count lower)?

Edit: Bump Maps and Normal Maps seem to be really similar. What’s the difference?

That is correct.

As you said, Normal Maps are good for real time rendering and giving the ilussion of depth.
As they use less memory.

Displacemente maps are more used for still images.

1 Like

Oftentimes with displacement maps you need additional geometry in order to have enough detail so that the smaller finer features can be formed. often you will subsurf your mesh and then use a displacement modifier and the image. or you can use adaptive subdivision and use nodes.

But if you don’t want to use any more geometry you can also use the displacement map almost the same as a normal map. you just feed it into the height input of a bump map node, and use the normal output just like a normal map node, into the normal input of a shader.

So, yes, usually disp maps are to actual move geometry, but they can be used also to fake it.

1 Like

Hi.

https://www.google.com/search?q=Bump+Maps+and+Normal+Maps+differences

(I’m not being pedantic, is that I know that there is very good information about this already written)

1 Like

Height Displacement: Displaces geometry, but require a lot of geometry to work. Benefit is that it’s as real as it gets at the cost of memory and rendertime. Parallax effect such as occlusion, masking, and shadow contour following (?) is automatic. These are I believe impossible to achieve (for regular users) without actual displacement. Shadow should be possible (I saw it 20 years ago, but prior to pathtracing!) for bump (probably fake), but it isn’t. It’s only a huge deal for very sharp shadows though.

Bump: Same as height displacement, except no new geometry is actually created. The renderer measures the intensity difference of pixels and calculates a slope/normal. So to illustrate a long slanted angle you need a long gradient of greyscale values to represent it. You will typically use bumpmaps to create small imperfections where accurate control of slope angle is not important. Bump mapping don’t survive closeup zooming because the change happens for each pixel. The upside is that bump mapping is very easy to “read” just by looking at the image texture.

Normal: Here you supply an image that describes the “off angle normal” from the actual normal, in two directions. So if you have a flat plane then a single color off 0.5, 0.5, 1.0 (I think this needs to be a normalized vector as well) will represent a slope for that pixel. So a big surface at some slope can be represented by a single color, and you can also say specifically what the angle is (from baking). Downside is that they are not very intuitive to read.

1 Like