Friday, October 17, 2014
Baking normal maps using Blender Cycles
First open your scene. Apply smooth shade to high poly mesh and to the low poly mesh. Then mark sharp edges. Basically these are the edges which go along UV seams(not all UV seams) and 90 degree edges. Add the 'edge split' modifier, but don't apply it. This is my low poly model with marked sharp edges.
Uncheck 'Edge Angle' and check 'Sharp Edges'
Then duplicate the low poly model and rename it as 'cage'. We are going to use this as 'cage' when baking normal maps. Add displace modifier and set the 'Strength' to a very low value. This depends on your model scale. Move up displace modifier so it will not cause any problems with the 'edge split' modifier.
Go to the node editor and add the 'Image Texture' node. Create a new texture image in the UV editor and assign it to the node.
Then go to 'Render Tab'. Expand the 'Bake' section and choose 'Normals' for baking option. Choose proper swizzle coordinates. In here I'm going to export my model to Cryengine. Cryengine uses the X+ Y- Z+ swizzle coordinates. Check the 'cage' and select the cage model. Check 'Selected to Active'. Set the margin value to 4.
First select the high poly model and then select the low poly model. Click bake.
You can tweak the map by changing the strength value of the displace modifier and adjusting the faces of the cage. If your model is a complex one, separate the parts (low poly and high poly). Create cages for particular parts and bake one by one.