Re: What\'s the Difference Between Normal & Bump Mapp\'n
on 10-27-2004 03:04 PM
First off, there are two types of normal maps. Tangeant space normal maps (which are the bluish hued most of us are familiar with) basically represent an X,Y offset from the face normal on the pixel level in the red and green channel. The blue channel is, for the most part, ignored. Then there are world space normal maps, which represent an absolute X,Y,Z tangeant angle in world space cooridnates. World space normal maps can be rendered a bit faster, but they require the object to be in a set position to look right, so they're not used much in games and more often in CG rendering.
The big difference between a normal map and a bump map is a normal map is used primarily for lighing the surface of a model on the pixel level (ie per-pixel lighting). This yields a much more detailed appearing, smoother looking model than vertex, face, or fragement lighting of a traditional real time engine. The traditional method relys on shading a triangle or vertex based on it's angle of incedence of it's normal between the lights and camera (your viewpoint) and smoothing between the results of it's neighbor across edges. With per-pixel lighting, the low poly geometry will be lit and rendered pretty much the same way as highly tesselated geometry.
A bump map, on the other hand, just adds some faked modulated detail (highlights and shadows). It won't make the model light any smoother, but it will add some textural detail so that it doesn't appear like a completely flat surface. A lot of engines actually convert a greyscale bump map into a Dot3 bump at runtime and treat it like a normal map for rendering purposes.