Normal mapping is a great way of showing more detail on a 3D model by simulating the way surface detail responds to light. It is a 2D effect so it will not change the shape of an object, but inside the profile outlines it can simulate a
tremendous amount of extra detail. This is very useful for real time game engines where processing power is a limiting factor or animations where it's render time that can be the limiting factor.
Original and normal mapped object
Normal mapping is not new but with the latest graphics cards it's become more and more affordable. It's very similar to bump mapping in that they both achieve the same effect.However, bump mapping simulates vertical offsets relative to the face direction it's projected on, new directions are a result of the height differences between neighboring pixels. Normal mapping on the other hand uses colors to indicate directional offsets, making it far more efficient. It doesn't use it's neighbors to determine it's angle, a single pixel is enough. The red channel in a normal map encodes the left-right axis of normal blue channel encodes vertical depth.
This makes for a pretty interesting image that is, unfortunately, impossible to paint properly by hand (unlike bump maps). Which means you have to generate a normal map, this is done in several ways, you can bake it, render it or convert a height/bump map.
Baking is the process of capturing the surface detail of the source object and transferring it to the target object, During the baking of a normal map the software will compare the two surfaces and determine which colors are needed where on the target surface to compensate for the difference in shape between the two objects.
Source object and the target object partially enclosing it
Baking is done by casting rays from the low poly surface (also called target since it will ultimately receive the normal map) onto the high poly surface (also called source) , the direction of the rays is determined by the vertex normals, they can be cast in both directions, forward and backwards. IfÂ you have a smooth surface (or one smoothing group) the normals are "averaged", when you have a hard edged surface the normals point in the direction of the face normal, i.e. straight up from the face.
This is an important difference to be aware of when you start baking because when your edges are hard the vertex normals for one face point in a different direction than the vertex normals of it's neighbors meaning you get "blind spots" in the projection.
Soft and hard edged projections seen from the side
Another thing to be aware of is in order to bake a map properly every single polygon that is going to be included in the bake needs to have it's own space in the UV layout. You cannot have overlapping UV's since the software will not know which of the faces you want to be used in the calculation and instead will draw them all at once.
Since the target surface is one big, very complexÂ projectorÂ you should treat every face on it as if it where an inverse UV projector, sucking up the image instead of projecting it. By looking through a face on the target mesh, as if it where a window, you should be able to see every polygon on your source mesh pointing more or less in your direction. If a source poly is perpendicular to you, or pointing away from you, it won't be captured on the normal map. Another thing to take into account is that you need to see enough of each source poly so it can be given enough pixels to clearly define it on the normal map.
Check projection directions and visible surface detail
All in all baking is the most time consuming method but it will also give you the best results. It's worth it!