Skip to main content
GameDev.net gamedev.net
🔒 Locked

Difference between bump mapping and normal mapping

Started by Monder May 23, 2003 at 5:51 AM 7 replies 950+ views
Original Post
Monder
Monder
Is there any difference between bump mapping and normal mapping? I''ve read people on forums talk about them as if they were two seperate things but I thought they were exactly the same because bump mapping is mapping normals onto an object to alter the lighting over it''s surface and so create the bump.
Ysaneya
Ysaneya
Here is my 2 cents on this topic:

Bump-mapping is a specific case of normal mapping. On the hardware level, we are basically doing normal mapping; ie. we use a texture map where RGB colors encode a normal. There is many ways to generate this normal map. One of them is to use a bumpmap (basically a texture representing height details over a surface) that is converted to a normal map by differencing the height values for each texel.

Y.
paulc
paulc
Technically they are the same thing, storing surface normals in a texture and using them to increase the surface detail of an object by doing per pixel lighting calcs. The difference is in the way that the lighting calcs are done. With bump mapping they are calculated in tangent space. The benefit of this is that the bump map can be used on any object to add detail. Normals maps are specific to the object they were created for (what new doom/doom3(?) is using). They are applied to a low-res version of a model, the high-res version being used to generate the normal map. The end result is that the low-res version appears to have the surface detail of the high-res version. The lighting calcs in this case are done in object space, I believe are less complicated, but limit the normal map to use on the object because it will not map correctly to another model.
Monder
Monder
Ahh so a normal map is where you get high-poly model lower it''s polycount and create a normal map so you can still get a lot of detail on a low poly model. Is that right?
Yann L
Yann L
Bumpmapping is the general term used for the effect. Normal mapping is a specific implementation of bumpmapping.

You also have two widely used texture map formats to represent bumps: heightbased bumpmaps, and normalmaps. Both are different, as you will lose the height-information when converting a (heightmap) bumpmap to a normalmap.

That said, only normalmaps can be used for the well known DOT3 bumpmapping. 3D packages such as 3DSMax only use height-based bumpmaps, so you have to convert them to the corresponding normal map by finite differencing (for example). Height-based maps become interesting again, when using displacement mapping or spherical harmonics. But they can't be directly used for standard DOT3 bumpmapping.

paulc, what you mean is object space vs. tangent space bumpmapping. Those terms are only valid for normalmaps, since those encode directional vectors. And the encoded vectors need a reference frame. A height-based bumpmap, however, simply encodes a displacement, and does not need a reference frame (their reference coordinate system is implicitely given by the model normals, ie. the bump extrusion is done along those normals).


[edited by - Yann L on May 23, 2003 10:11:53 AM]
paulc
paulc
doh, right idea, wrong terminology.
Monder
Monder
Thanks a lot guys. I understand now.
Ysaneya
Ysaneya
Yeah that''s really abusing the effect, but the other screenshots look good so it can be forgiven..

Y.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.