Jump to content
  • Advertisement
Sign in to follow this  
p1p1

Normal map, height map, bump map... are all the same thing?

This topic is 1139 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello!

Speaking of 3D and lighting, is it true that 'normal map' is the same as 'height map' or 'bump map'? Why is this map called differently? Is it just because this map does not have a conventional name, or do these things really differ in some specific way? As far as I understand, raising or lowering a point on a lit surface is visually the same as displacing the normal to the surface at that point. Is that correct?

Share this post


Link to post
Share on other sites
Advertisement

Thank you all for clarifications... the difference is much more clear when illustrated )

Share this post


Link to post
Share on other sites

Most things are already mentioned in the posts above. Well, I think there need perhaps to be a little more accentuation on the difference of a map as a parametrization and the mapping as the applied technique.

 

A height map is an array of pixels with a single channel (hence it appears as grayscale image), where each of the pixels denote an elevation height w.r.t. a reference surface. It can be used with the bump mapping technique (and hence the map itself is also called a bump map) to simulate bumps and wrinkles on a surface without changing the geometry of the surface, not even temporarily. It can also be used for the displacement mapping technique where geometry is actually changed. Because a height map has only one channel, the displacement is restricted (usually along the normal of the surface onto which the mapping is applied). When applied to terrain (originally a flat horizontal surface), the bump map is sometimes also called an elevation map.

 

A full displacement map can be used, too, so that 3 channels are available, e.g. one for each of the directions normal, tangent, and bi-tangent to the surface.

 

A normal map is a map similar to a full displacement map, but instead of an displacement offset there is just a direction stored in the 3 channels. It cannot be used for displacement, because it lacks a distance. It can. however, be used to simulate surface bumps and wrinkles with the normal mapping technique. In fact, when doing bump mapping you need to compute the normal distortion from the gradient of the bump map pixels, and hence more or less convert the bump map into a normal map on the fly.

Edited by haegarr

Share this post


Link to post
Share on other sites

due to the blue component always being 1.

The blue component is always positive (thought this is not strictly enforced), not necessarily 1 (but usually quite close to 1).

 

 

L. Spiro

Share this post


Link to post
Share on other sites


The blue component is always positive (thought this is not strictly enforced), not necessarily 1 (but usually quite close to 1).

 

Yet this is true only for tangent normal maps. Object space normal maps are the total RGB shiny mess hall.

My 2 cents:

-Normal maps encode 3d direcitonal unit vectors in RGB three channels, interpreted as direction of the surface normal on the texel

-Height maps encode a single value, usualy in one of the channels ( so are often combined into fourth channel of the normal map). Usualy interpreted as height of the texel

-Bump maps are too usualy grayscale images , since they encode a single value as well, used as a straight factor for light. This is old technique, and today those maps are more interpreted for specularity, to explain parts that are shiny/reflective from less shiny parts (it provides a rather cool effect, without it the specular shader will make entire model look like "laminated").

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!