Hey guys! We're breaking away from the norm in this tutorial. We'll be doing a lot of explaining of theory and concepts, but not an actual project this time. I tried a video, but since there wasn't much on screen action, it was really boring! There is a project in the works, but one of the techniques I use in that tutorial is complex enough that I felt it deserved a tutorial of its own, and before I just start tossing the technique around in the next tutorial, I felt like we should probably cover a few of the basics before hand. So without further ado, let's talk about normal maps.
If you have any experience with 3D modeling programs, you probably already know what a normal map is and what it does. If not, you're probably wondering what the heck I'm talking about and why am I talking about modeling on a Photoshop blog.
Well, here's why.When you're talking models, geometry equals overhead, and overhead equals increased load on your CPU and GPU, and increased load equals sub-par performance, which is always a bad thing.
Normal maps are a favored tool for avoiding this bottleneck. Without going into too much detail they do this by manipulating the way light is reflected off a given surface. Used correctly, normal maps create the illusion of geometry where none exists. This means that a 3D modeller can create a character that consists of only a couple thousand polygons and make it look as if it were made of 10s of thousands, without the increased strain on system resources.
Here we have a graphic example of the theory of normal mapping. In this image, we see the light being reflected away from the flat surface at an equal but opposite angle from the source, exactly as you would expect.
In this image, we have the exact same surface, but with a normal map included. The light is reflected away from the surface at multiple angles, creating the illusion that the surface is a lot less flat than it actually is.
In some situations, such as character modeling, the mesh is so complex, that you really should use a modeling program to create the normal map. But the normal mapping process inside 3D modeling programs is a convoluted mess involving projection cages, baking, low poly and high poly versions of your model, and a lot of grief. Even if you're skilled at it, it's still more art than science and can turn into a huge project all by itself.
However, there are many other situations where the same result can be accomplished in a much easier, less painful way. The folks over at Nvidia have created a normal map filter plug-in for Photoshop, and I have found that for non-organic work, I prefer using the plug-in instead of baking the maps inside a modeling application.
Now you may be asking yourself what this has to do with Photoshop. This is not a 3d modeling blog. Well, here's the answer. You can create and use the same normal maps that are designed to improve the efficiency of 3D models inside Photoshop extended to exponentially enhance the quality of your work. If you use the 3D capabilities of Photoshop at all, you should definitely take notice of normal maps.
Photoshop's 3D capabilities are great. You can extrude bend, twist, taper, and scale shapes. You can add lighting, materials, shadows, reflections ... the list goes on and on. But one serious limitation on the Photoshop 3D engine is its ability to manipulate the mesh on a given surface. We can use the normal maps to great effect to compensate for this shortcoming. So let's go ahead and get the plug in downloaded and installed.
First, point your browser to http://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop. The plug in is compatible with all versions of Photoshop going all the way back to 5.0. (even though CS6 is not specifically mentioned it does work.) This plug-in also contains the DDS plug in, MIP map generator, and cube map shuffler, but those are outside the scope of this tutorial. Feel free to explore those on your own. Choose whether you want the 32 bit version or the 64 bit version, download, then install as normal. The prompts are self-explanatory.
Once you have it installed, open up Photoshop, and you'll find the plug in in your filters menu, under "Nvidia tools".
Normal map creation works similarly to bump map creation. In fact, they both use the same basic principals. They use gray scale information to create the illusion of depth on a given surface. Normal mapping is sort of an evolution of bump mapping but it is not a replacement. In fact, I have found that normal maps and bump maps work very well together in tandem. Bumps seems to be better for rough textures, while normals work great for complex, mechanical structures.
This tutorial is more of a discussion about the theory of normal maps and less about technique, so I don't have an actual project for you to do. In the next tutorial, I will go into greater detail into the actual creation process. For now, let's open up the filter and look inside.
You'll see many options here, but for our purposes, we'll only cover the essentials. In the height source pane, click the Average RGB bullet. In the Alpha Field pane, tick the Unchecked bullet. In the Height Generation pane, you have some options. Combining the filter type with the scale will determine how profoundly the filter influences the image. There is a 3d preview feature which you can play with if you like. I have found that the more I use this filter, the less I need the preview. The Dynamic Filter in the upper left corner is sufficient.
There are a few different kinds of normal maps. The type we are using is called tangent normal map. It uses RGB values to determine which way light will be reflected. Let's look at an example of a normal map I created using simple geometric shapes. I first created a pattern, then used this same pattern as a basis for both the diffuse and the normal map.
And now down to brass tacks. What does this all mean for you as a Photoshop user? Beyond the theory, how is all that this fanciness brought to bare in a practical way? Here's what a normal map is capable of doing. These two boxes are identical in every way. They exist in the same scene, so they share the same lighting. They both have the exact same reflective and specular settings. They even both have the same diffuse texture. The only difference is one of them has a normal map applied. Can you guess which one?
The box on the left is a completely different story. The light is being reflected, but thanks to the normal map, the surface is capable of reflecting light in many different directions, as if it had actual geometry. The dome-shaped elements are especially dynamic, reflecting the image-based light very realistically. If we take a look at the top edge, which is at an extreme angle, we are reminded that the normal map doesn't actually create geometry, but instead is only an illusion. However, on the surface facing the camera, the illusion is so complete that it approaches photo-realism.
And there you have it, a quick and dirty sneak peak into normal mapping and how you, as a Photoshop designer, can use them to exponentially enhance your projects. As promised, in the next tutorial, we'll go step by step through the normal map creation and deployment process and soon you'll be using them to make designs that are almost impossible to distinguish from the real thing. See you next time.