After completing this tutorial, users will be able to bake high-resolution geometry onto a low-polygon mesh using the Polybump standalone application. This tutorial uses the cylinder of a revolver as an example object.
Note: The standalone application can handle more data than the 3ds Max plugin. If you run into performance problems, please make sure that you are using the 64bit version, as the extra memory allocation is particularly helpful.
First, build a high-resolution mesh of a revolver. The surface information of the high polygon mesh will be baked into the low polygon mesh as a normal map.
Build a low-resolution mesh around the high-resolution mesh. The low-res mesh should have a very tight fit to the high-resolution mesh at folds, edges, and corners in order to make sure that the detail is captured correctly.
All normals should be unified, with smooth shading for the mesh, since there will be fewer discrepancies between the shading of the low and high-poly mesh that the polybump has to compensate for. The normal mapping algorithm can capture all polygon normal data of the high-res mesh, including beveled edges such as in this example. Reproducing these bevels works better with an entirely smooth low-poly mesh. For optimal results on edges, you should these edges on the low polygon mesh.
Try to keep the shading of the low-polygon free from irregularities. Small shading irregularities like in the picture above can be corrected by polybump and will hardly be visible.
Try to hide the texture seams in less prominent areas. Polybump can compensate for seams, but having them in visually important areas should be avoided, especially in bevels.
As you can see, it's possible to mirror and duplicate a small piece of geometry to save UVW real estate while avoiding seams in the final rendered normal map. Note that this only works well for objects with little texture detail, or else the repetition would be obvious. Make sure that the normals of the resulting mesh are unified, and export the entire object as low poly mesh, not just the green part (in the picture), or you will get faceted shading as a result.
Once both meshes are finished, export them as .OBJ files and start the polybump standalone application. Select File > New to create a new surface file. The Crytek Surface File (.srf) is an intermediate file format that will contain the calculated raw data. You can export the final textures as .CryTIF from this surface file once the calculations are done, and you can open the file later on and export them with different settings.
Go to Document > Computation settings. For detailed instructions on the different options, please refer to the document.
Specify the .OBJ files that you exported earlier. Choose one low poly mesh under 1 and one or more high-poly meshes under 2. You can adjust different quality settings under 5. For now, leave them at their default, as seen in the picture. Pick the texture dimensions under 6. For preliminary tests, it's best to use a low resolution as the calculation time will be much shorter.
Once you have adjusted all the settings, you can start calculating. Go to the document menu and select start computation.
You will see a small progress window indicating the time left. After the calculation has been completed, you will see a small preview window in the main window:
If you are experienced with normal maps, you will notice that the colors of the map are in world space format, rather than the usual tangent space. You can change this later on when you export the textures.
Once the calculation is finished, you are ready to export the textures. To do this, go to Document > export data. The following dialog will appear:
Again, please refer to the for detailed instruction on the options. For now, make sure that option number 4 (transform vectors to is set to tangent space, and hit "Apply Settings & Compile". You will find the resulting texture(s) in CryTif format in the same directory as the 3ds Max file and the polybump surface file.
You can now export the low-poly mesh as .CGF file and load it into the Sandbox editor. Put the normal map (_DDN.tif) into the normal map slot of the object's material, and if you rendered a horizon map, put it into the diffuse slot.
Adjust the material so it has a high specularity or give it a reflection map to get a better impression of the normal map shading. Use the attached material and mesh as inspiration.
The low poly mesh with the normal map applied in 3ds Max.
The low-poly mesh with a DDNDIFF normal map and a chrome shader applied inside CryENGINE.