The 3rd Age

The Elven Alliance

The Elven Alliance

Adding a completely new Elven faction with unique units to the game

Button for The 3rd AgeButton for The Dwarf HoldsButton for The Elven AllianceButton for Helm's Deep Last HopeButton for GothmogtheOrcButton for BFME+Button for The Four AgesButton for HDR HeadquartersButton for Middle Earth CenterButton for Project Perfect Mod

Become an affiliate!

   

Quick Lists

Top Rated Popular New Updated Last Comments Users

Register and log in to move these advertisements down

Creating Basic Normal Maps

Tutorial for Battle for Middle-earth II BFME 2, Battle for Middle-earth II: Rise of the Witch-king ROTWK

Avatar of Nertea

Nertea

Category: Graphics
Level: Intermediate
Created: Tuesday April 28, 2009 - 22:44
Updated: Wednesday April 29, 2009 - 1:13
Views: 8595
Summary: Shows how to create basic normal and height maps for BFME2

Rating

Staff says

4.8

Members say

2.5

Average

4.0/5.0

6 votes

Page 1 2
This is the sequel article to my previous tutorial on applying normal maps. Click any image to enlarge.

Normal maps are used by some of EA's BFME2 buildings to add fake mesh detail to an object. They let you simulate bumps, hollows and the like on an otherwise flat surface. If you want to know more about how a normal map works, Ben Cloward has a nice introduction in his tutorial. That link is a good resource if you want to delve more closesly into actual normal map creation. Here's an example of a normal map that I created for my Royal Guard model:

User image


As you can see, it looks sort of strange. It's hard to tell how that might relate to adding detail to an object. However, we'll be getting to something like this at the end of the tutorial. The method I'm going to use here is the one most applicable to BFME - normal maps from bump maps. As an example model I'll be using a piece of a Dwarf building I made for BFME1. Take a look:

User image


As you can see, that wall looks pretty flat, with just those bricks and the like sitting here. A normal map will help it look more 3D without actually needing any more polygons in the model.

Before we begin, we will need NVIDIA's dds/normal map tools. You can find them here. These contain the dds tool and a filter for normal mapping. Once you install them, you should find the Normal Map Filter in your filters menu as follows:

User image


To create a normal map we will first be creating a bump map. What's a bump map? It's essentially an older version of a normal map, but has less built-in possibilities. A bump map is a single greyscale texture. Quite simple, dark areas on the texture are recessed, while light areas are higher. You might also find references to it as a heightmap.

User image


The bump map can be used to generate a normal map with the help of NVIDIA's filter.

So, the creation of a bump map. This step is easy to execute, but takes a bit of thought and there are things you should pay attention to, so I'll go through it briefly. First, I'll load the texture file I want to use (the area of interest is circled in red).

User image


I want to make the windowsills and the bricks stand out and look more 3D. The important thing to remember first is that anything that doesn't cause the surface to be deformed should not be considered in the map. Therefore, I'll hide my decorative triangles layers.

User image


Next, I have to mentally create a hierarchy of heights. I need to know what objects are "higher" than others, and how much higher they are. This is done on a per-area (generally per face) basis. Looking at the w3d viewer screenshot, I have to establish hierarchies for the walls, the awning, the lintels and the roof. So, with 1 being "high" and the highest number being "low";

User image


I've outlined these areas on the texture as well for your benefit:

User image


Then I convert the texture to greyscale. Now, since all my high areas are going to be the highest (so white) I can paint them in pure white. For example, the roof area. I paint the roof edge in pure white, and the roof edge cracks in pure black (they are the lowest). There are several ways of doing that. The one I usually use for quick generation is to open up the Levels (Ctrl-L) dialog:

User image


You can use the settings here to maximize contrast and therefore separate the cracks from the actual blocks. However there is a problem with this... note how my stains and random cracks got super-emphasized as well! If this was the actual bump map, those areas would end up looking mighty recessed

User image


This has to be cleaned up manually. I take a low-opacity brush on white and erase the marks. Not completely though, as I might like some of my scratched up areas to be a little recessed

User image


I can also take advantage of this time to make some of the recesses between the blocks darker and therefore lower

User image


Note that I'm really not being as careful as I should here; some of those dark areas will really make the normal map look messy.

Anyways not for the roof I must tackle the tiles. For this section I use levels again, but I must make it so the following criteria are met
  • The entire tile layer is darker than the surrounding stonework
  • The darker bits of the tiles should be the lower areas
  • The entire tile layer should be mostly of uniform height


User image


Only practice will allow you to get this perfectly correct (this one isn't). Just recall that really dark is REALLY low. Similarly, bright white will be quite high! Bright spatters are as bad as dark spatters. Avoid really sharp contrasts unless you really want the height difference to show up.

Now I'm going to move on to the walls (the lintel and awning are pretty simple, I've done them here but I won't cover procedure). So, the highest spot on the walls are the windowsills. I'll make them nice, bright and white.

User image


Next, the walls themselves will have to be lighter than the black windows, but darker than the windowsills

User image


That scarring will really show up on the map. Cleaning it up is tedious... but should be done. Also note the darker areas to the top and bottom - these were shadows I faked on the diffuse texture. They will have to go!

User image


This is what I'm going for. It's not awesome, but it will do for the purposes of this tutorial. As you can see, I lightened the windowsills even further to emphasize them more. It is still very bumpy - this will be quite evident on the finished model.

Links / Downloads

 HitsAdded
NVIDIA Normal Map Tools1823April 29, 2009 - 0:28

Comments

Display order: Newest first

Adamin - Friday March 12, 2010 - 8:05

Thank you very much. Creating a normal map worked quite well with this instruction. But I have one question: Shouldn't the "Invert Y" option in the normal map filter be ticked? Otherwise the lighter (therefore higher) parts of the bump map seem to go down on the normal map. Or is this irrelevant?

Sulherokhh (Team Chamber Member) - Wednesday April 29, 2009 - 1:45

Yippee! :P Never knew what a bumpmap was until now! :D

Go to top

 

"One site to rule them all, one site to find them,
one site to host them all, and on the network bind them."

 
12:10:27