Tangent Space Normal Mapping allows you to bake lots of 3 dimensional detail into a low poly object. It also maps per face, so no matter how the object is deformed, the “displacement” effect continues to be accurate. It is used today in many popular titles such as Doom3.
There are two other tools I know of that can be used to get this type of mapping, MeLODy and ORB. MeLODy can be found at NVidias website, and IMO, is the most difficult to use. ORB is command line, and open source, but difficult to find on the internet. Regardless, I have tested 3 such tools for this job, and the best, by far, was given to us as Macuono’s BRayBaker.
Folks, if you love game art, and you love making it, this script is by far the most powerful weapon in your arsenal. It is a miracle script. Anything you can get Blender to render, it can bake to your UV’s. To repeat myself…
Anything you can get Blender to render, it can bake to your UV’s.*
*camera angle based calculations, like specularity, transparency, or reflectivity, may not turn out as you envision.
Imagine the details you can pack in, but not just 2d detail, normal mapped 3d detail.
(NOTE: The technique I am about to describe has only been tested with version 2.37a! Something changed in 2.4, and currently, baking from a hi-poly object, to a low poly object is very difficult, and I have not been able to get it to work correctly. —not true anymore, whatever was broken was fixed in 2.41!)
(NOTE II: I am simply providing how to set it up. There is much reading online about how to make TSNM correctly. There are lots of rules and nuances. You will have to do much more reading on the subject to get these maps to start producing the results you want. If you do not know what a tangent space normal map is, you need to google and start reading, and it will take time and focus to understand the theory… the technology itself is only about 2 years old!
This thread at cgtalk is a good start: http://forums.cgsociety.org/showthread.php?t=129627 )
Above is a UV mapped low poly part of my Fuel refinery
OK, now for the mini tutorial.
Go to here: http://www.blender3d.org/cms/Normal_Maps.491.0.html in there you will find the instructions on how to make a normal map in Blender, and a .blend with the normal map material.
Download the .blend, make a copy and rename it, then open the copy. (this is so you can save the original material to be used on different projects)
As you know, we are going to try to bake the 3d details of a hi-poly mesh to a low poly mesh, (BTW… on a tangent, Cambo is working on the sculpt mesh script, which when finished, could very well be another very powerful tool on par with ZBrush, for making a hi-poly mesh). So now you will need to append the hi-poly and the lo-poly mesh to the open material file from the Blender website.
delete the meshes and lamps that were in the blend, all you want to use is the material, and the camera, (be sure it is in Ortho mode).
Set the world colors to R 0.5, g 0.5 B 1.0 (pale blue) noteallthough this may not be necessary, I think it will help hide seams even furthur, should the script find difficult areas
Apply the material to your hi-poly mesh.
Now it is time to run BRayBaker.
Be sure to bake it to the UV coordinates, and be sure to render the hi-poly object’s layer, but select the low poly object for baking.
(NOTE III: BRayBaker is an advanced tool, and as such, you will need to visit his site he provides a link to in the elysiun thread, and I have found it may take a little practice and getting used to, but it is better than MeLODy or ORB, in the way that it cleans up seams very well, which if not cleaned, look horrible in the final result)
- There you have it. the final result should give you an image, that you can apply to your lo-poly UV map. If done correctly, the image should be mostly that light blue color with green and red hues showing the 3d details.
Blender does not support TSNM’s, (It can generate a correct map, but cannot use the map) but if you leave the low poly model in it’s place, (no rotating, but movement and scaling is fine) and render an animation, it will render the low poly model and it’s details correctly.
The only way to fully test whether your TSNM worked correctly would be in an environment that supports TSNM shaders, then you could bend, twist and rotate the model, and still have the normals displayed correctly.