How to Generate Normal Maps to Add Detail to Your Farming Simulator Mod
Making 3D models for video games puts a digital artist at cross-purposes. You know that increased detail on your Farming Simulator model helps a player get more immersed in the game. However, you also know that excessive detail can get computationally expensive, potentially making the game unplayable.
You can fake it a bit by painting some details in the diffuse texture, but some of those details won’t look right. The light in the scene simply doesn’t react correctly. Having texture that makes light react as if there are surface variations in your mesh even when they’re not really there would be nice. Essentially, this is what a normal map does.
A normal map is a 2D image wherein the colors of the image tell the game engine’s renderer that light should bounce off of the mesh’s surface in a specific direction other than the default. With it, you can fake detailed, dynamic shadows and highlights on a relatively simple mesh. Although digitally painting a normal map by hand is completely possible, doing so is a lot of work.
Baking a normal map is a better, less painful way to do it. Baking basically involves using the geometry of one mesh with a lot of detail and geometry and comparing it to another mesh with much fewer triangles. The difference between those two meshes is encoded, or baked, to a 2D image according to the UV layout of the low-detail model.
Some artists prefer to start with the high-resolution model. They go gung-ho and model in as much detail as they can. Then they take that high-resolution model and retopologize it, or create another model of lower resolution using the high-resolution model as a guide. Sometimes they use shortcuts, such as Blender’s Decimate modifier. More often than not, however, it involves rebuilding the model one vertex at a time.
Another set of artists is on the opposite end of the spectrum. These artists prefer to start with the low-resolution mesh. They keep that mesh as a base and either duplicate it or add a Multiresolution modifier. Then they use sculpting and modeling tools to create the high-resolution details on top of that base.
Regardless of the technique you choose (try them both, it’s really a matter of taste and determining which is most right for you), you typically end up with two meshes, a high-resolution one with a lot of detail and a low-resolution one that you intend to use in-game. After you have these two meshes, then in Blender, the baking process uses the following steps:
Make sure your low-resolution object is UV unwrapped.
You’re ultimately going to load this object into GIANTS Editor.
Select the low-resolution mesh and toggle into Edit mode (Tab).
From the UV/Image Editor, add a new blank image.
The size of the image depends on the size of your object. Small objects get small sizes whereas large objects get larger sizes. The width and height must be numbers that are a power of two and neither can be larger than 2,048 pixels.
Toggle back into Object mode.
Select your high-resolution mesh and Shift+Select your low-resolution mesh.
Order is very important here, so make sure you pick your low-resolution mesh last so it is the active object. Also, you want both meshes to be in the exact same spot; they should overlap one another.
In Render Properties, within the Bake panel, use the following settings:
Choose Normals from the Bake Mode drop-down menu.
Ensure that Tangent is picked from the Normal Space drop-down menu.
Enable the Selected to Active checkbox. This checkbox is particularly important because it’s a core part of what makes the next step work.
Click the Bake button.
In the UV/Image Editor, you should see the black, blank image fill in with a bluish image. This image is your normal map.
Save the normal map to your hard drive using the GIANTS texture-naming convention.
For example, myMod_normal.png
Now that you have your normal map generated, you can include it with your low-resolution mesh’s textures as part of its material.
If your mod consists of multiple objects, you need to bake each object to the same image texture. This means that you need to bake new data without overwriting previous bakes. To do so, disable the Clear checkbox in the Bake panel of Render Properties. Alternatively, you can bake to multiple images and combine them into a single image using Photoshop.