Bitmap-Based Normal Map Generation

Usually with my "Indie Priced Game Software" series I try to give one piece of software a recommendation - such as Autodek Maya LTAdobe Photoshop Elements and headus UV Layout. This time, I found it hard to truly recommend one piece of software, as there are many options, all offering very different algorithms and features. So, the following article is going to focus on three instead of one. I hope this is helpful to you. 

-

Normal maps are a very important aspect of texture design and can be generated in two different ways; high resolution baking and texture to normal. It's important to understand the difference between the two before we continue.

Firstly, baking high resolution normals comes from taking a game-suited polygon model and creating a high detail version - one that would have no place in a game (we're talking millions of polygons.) This is usually done with sculpting software such as SculptrisZbrush or Mudbox. Once the high resolution model is complete, you can create a cage to transmit the high resolution details to your lower polygon model in form of a normal map.

The second method is to take texture detail from a greyscale version of your diffuse texture and create a normal map from that. Now, you may think this method isn't as good as the former, and you'd be right - IF you only use one method. Sometimes, however, textures contain details not often sculpted in to the high resolution model due to either it being too small or not having enough polygons to accurately sculpt it in - such as small scratches, dirt etc. Combining the two methods produces the real sculpted detail and the tiny texture variants, which can work very well together. It's also worth noting that sometime there is no need for a sculpted version, leaving only the texture to normal - such as flat surfaces; concrete floors, walls etc.


The first software I am going to discuss is CrazyBump. This is the father of normal map generation software. There was a time when this was the only real choice for developers and it is my personal choice. The UI is very simplified and easy to use. Although it doesn't have the most extensive options when compared to Bitmap2Material, it always seems to produce great results. I believe Crazy Bump has the superior algorithm. It also allows you to generate ambient occlusion, specular and height/displacement maps. Although I've found the generated specular maps to be quite terrible. Also, on the negative side, when changing parameters it can be fairly slow to update. It can be a little irritating but it's not that slow.

Currently this is available in three forms, similar to headus UVlayout. The difference being that all three versions are the same; it is only the licensing that changes. (Professional is the only option for use in commercial products.)

Student: £29.31 - Personal: £59.21 - Professional: £178.84


Next, we shall discuss Bitmap2Material. This software provides a very large array of options. Much more than most normal map generators. These include options like adding decals, automatically producing a tiling texture and more. Just like CrazyBump, this also allows for normal maps, specular, displacement and ambient occlusion - and also adds curvature maps. I've found the specular maps to be far superior to Crazy Bump's - however I always prefer to paint my own anyway. The UI isn't as user friendly, but that's because it houses so many options it would be hard to make such a simple structure. Despite its many options, I've found that the algorithm isn't quite as powerful as Crazy Bump's - it's still fantastic, and the auto-tile feature is amazingly useful. When changing parameters, the textures update extremely fast, all in real-time.

One of the most useful feature with Bitmap2Material is its ability to be integrated in to game engines such as Unity and 3D suites such as Maya and Max, allowing on the fly changes inside Unity, for example, without having to ever save it out an image file over again if you realise you don't like the way it looks. This also vastly reduces texture sizes with no quality loss, meaning your games are much smaller in size - great for digital distribution, especially mobile games.

Non-Commercial: £29.99 Commercial: £109.00


Lastly, we will discuss ShaderMap - the most affordable solution of the three. Sadly, however, you get what you pay for. The UI is very clunky and all over the place and the algorithm for generating normal maps is fairly lackluster in comparison to Crazy Bump and Bitmap2Material. Just like the previous, Shadermap generates normal maps, displacement maps, ambient occlusion maps and a very terrible specular map. Shadermap has very little control over how your normal map comes out, as the options are extremely limited. The most irritating part is that when changing parameters, it is extremely slow to update. One interesting feature that does set it out, is the ability to draw on normal maps, using 3D meshes.

Price: £23.87

I would highly recommend either Crazy Bump or Bitmap2Material, dependant on which features you require. 

 If you have any questions, please get in touch

As one final comparison, I have created a normal map with each package, using the same diffuse map. Below are the results (no particular order)

Honourable mention : Photoshop Plugin - Nvidia Normal Map Filter


Crazy Bump

Crazy Bump

Bitmap2Material

Bitmap2Material

ShaderMap

ShaderMap