Task: Research what Normal, Displacement, and Bump maps are and why they’re useful.
From what I’ve found online and through my own experiences, a normal map is a flat, 2D image (like a texture file) that can be added to a 3D model to add a better level of detail. Instead of being black/white, a normal map is easily recognisable from its colouration of red, green, and blue.
The RGB values translate to x/y/z coordinates, allowing the 2D image to represent depth on the 3D plane it’s applied to. This can fake lighting and details based on colours associated with the relevant 3D coordinates.
These kinds of maps can help in memory conservation, allowing an artist to keep the 3D model within a required file size, but still having a model that looks more complex with higher detail. Some items, such as a metal panel on the wall, will look better if it has a normal map, where the bolts and welding lines are shown in higher detail via a normal map, rather than a modellers adding those details to their poly counts.
These sorts of maps “create illusion of depth on the surface of a model using lighting tricks” rather than actually changing the model. Much like normal maps, the detail that’s create is fake and actually exists on a 2D surface. Unlike normal maps, these are typically in greyscale and limited to 8-bits of colour information – all told, that’s 256 different colours of black, white, or grey.
When the colours get brighter (so the values are closer to white), the details appear to “pull out” the surface. In contrast, the darker they become the more they look like they’re “pushing in” the surface. This allows for really great finer details on models, such as the grittiness of the brick wall above.
Unfortunately, bump maps are entirely dependent on how the light hits them; they can break quite easily if the camera views them from the wrong angle. Shadows are also unaffected by them, since the map is not altering the model itself in any way.
These are best used for adding detail to low-resolution meshes – they physically displace (clue is in the name) the mesh they’re applied to – this means the mesh has to be subdivided or tessellated so the new geometry can be added.
The best part about these maps (like with the normal maps) is that they can be baked in from a high resolution model, rather than just painted by hand. Similarly to the previous bump maps, displacement maps are entirely in greyscale. While you could use an 8-bit map, you can actually upscale your colour information to 16- or 32-bit and will get much better results.
Unfortunately, with the good comes the bad – these maps take a lot of extra time to look right and can be taxing on lower-end computer systems, since you’re creating/adding new geometry to your model.
My Own Mapping
After looking into these three types of maps, we set about trying our own hands at making/baking normal maps in Maya. We first had to come up with an idea for a simplistic cube-like model, which we could then duplicate and make a higher poly version with better details. Once that was done, we would bake the details of the high poly model into the low poly version via normal mapping.
I decided I was going to make my own companion cube, which has enough detail and interest for a first-time normal mapping experience, but it’s simple enough to model – we only had about an hour and a half to come up with both low poly and high poly versions. I set about making a very quick low poly version, which retrospectively I wish I’d added a little more thought to after seeing the result of the texture mapping.
The edges of the low poly companion cube are very sharp, while the high poly model has a lot of bevelled edges. I think the exterior edges are far more important to think about than I originally realised, if only for this reason. Otherwise, the map does look… very strange on the corners. However, putting the effort into making sure the channels on the cube and the booleans weren’t creating any ngons and there were no inverted faces made the end model well worth it.
After that, it was time to begin baking! I followed the steps provided within Matt’s PowerPoint and seemed to succeed quite well at making my first normal map. I had to do the baking twice because I actually forgot to UV unwrap my models the first time around, but after that small hiccup and an auto unwrap, I ended up with something I don’t think looked half bad!
A Sketchfab link can be found here, since I thought it would be cool to look at it in 3D space and see the difference between the two models. The map itself (seen below) looks a little bizarre, but it’s because of the auto unwrap – I think I’d get much cleaner results given time to manually unwrap the model myself.
However, despite that, I can definitely see why this is such an important tool in the modelling world. I think it’s also possible to use your own textures (not something taken from a higher poly model) to make up a normal map – the best example I’d have in mind would be to take a picture of rock or brick, then use it to make a normal map to add to a model of a wall. In any case, I look forward to exploring maps in Maya even further!