normal map question

   4231   3   1
User Avatar
Member
313 posts
Joined: July 2005
Offline
Hi there,

Which part of normal map is better than traditional bump map.
Normal map has been so popular in these few years. no mater people are from the game industry or movie orZbrush modeller. But why people nowadays prefer using normal map to bump map? Which one can produce better quality? Why?

some website explained a lot about tangent space or something…… but why is it better than bump map?

thanks for your attention!
User Avatar
Member
344 posts
Joined: July 2005
Offline
I think maybe you need to understand the difference between a normal map, a bump map and a displacement map.

All surfaces have normals. A normal is a direction vector that tells the direction a surface is facing, and is used in the lighting calculation to determine how light is reflected on the surface.

With a normal map, what you are doing is replacing the actual surface normals with normals that are stored in a 2D image map. When these normals are used in the lighting calculation it can make it appear as though there is more detail on the surface than there is.

A bump map one the other hand, is used to modify the existing surface normals, pushing them in or out in the lighting calculation. It can create the appeareance of raised and recessed areas on the surface, but in many cases the result is not as effective as a normal map, because the true surface normals are being used.

A displacement map is similar to a bump map, except that it actually displaces the surface along it's existing normals. If you have a micropolygon renderer, such as in Houdini, this will be the most effective way to create fine surface detail, and it's the method most often used in film, though sometimes a combinaion of methods will be used in the same asset.

Normal mapping is popular in game development because it's a very effective and inexpenive method in terms of resources to make a very simple model that can be drawn quickly appear to have much more surface detail than is actually there. The method is not used in film to the extent it is in games, and in many cases it's used to a different end in film than it is in games. In film for imstance, they may use a normal map to create a fake fur or feathered surface that sits underneath the high res fur and feathers of an animal or to be used on characters in the distant back ground. They are doing this because it's a cheap way to fill these surfaces with fur and feathers without the expensive over head of actually generating and rendering fur and feathers.
User Avatar
Member
313 posts
Joined: July 2005
Offline
Thanks a lot, MichaelC!

May I say that nomal map is more efficient because normal map's calculation on getting the normal is more direct than bump map? (since a bumpmap need to read to read the gray scale image, then calculate the bumpiness and finally the nomals)

But i do not understand why bump maps quality is worse than normal? You mentioned about because the true surface normals are being used. But why would the true surface normal affect the quality. I think the true surface normal is also from the micro polygons when rendering is being done.

However, I got better understand of it from your explaination! I really appreciate it!
User Avatar
Member
344 posts
Joined: July 2005
Offline
I don't think a normal map is particularly more efficient than a bump map. I'll try to be a bit clearer…

With a normal map you can have normal vectors in the map that point in any arbitrary direction. So say you have a single poygon; that single polygon only has one true surface normal. With a normal map you could potentially be replacing that single normal, as far as the renderer is concerned, with thousands of unique normals, possibly several normals for each pixel in the final image, all pointing in slightly varying directions. It can give the illusion of a very complex, high resolution, smooth surface (provided the normal map is of a sufficient resolution) on a single polygon. However, since the geometry is not actually being modified, you will see sharp polygon edges around the silhouette of the model.

With the bump map on the other hand, what happens is the existing single surface normal is multiplied by the value stored in the bump map at each point on the surface. The direction of the normal used in the lighting calculations stays the same as the original surface normal. So you have a polygon with one normal, the direction never varies, only the magnitude of that normal varies per pixel. This gives the surface a simple embossed look. Again with bump maps the surface is not actually being modified, so you will see sharp polygon edges on the silhouette of the model.

In terms of complexity it depends on how the normal map is generated and used as to whether a normal map is more efficient than a bump map. In some cases you may just swap the surface normals for those in the normal map. In other cases the shader may have to do a calculation using tangents and what not stored on the model. At any rate with hardware these days it's not something to get concerned about.

You asked about tangents eairler… For each normal on your surface, you also have a binormal, and a tanget. The binormal is a vector perpendicular to the normal, and the tangent is a vector perpendicular to both the normal and binormal. They can be envisioned as a little coordinate system for any point on the surface similar to the X, Y, Z coordinates you are used to seeing in 3D applications. The tangent space can be envisioned as a plane perpendicuar to the surface normal.

You will see talk about camera space normal maps, object space normal maps, and tangent space normal maps… They all have their uses but for a myriad of reasons, tangent space normal maps are the most commonly used in games. Without going into a lot of detail the main reasons are that tangent space maps can be lit from any direction, they can be reused on opposite sides of a model, and they can be compressed to two channels.
  • Quick Links