Introduction
Oblivion is different fromnearly allother PC games at the date of this writing in late 2007 in the amazing graphics possibilities it offers. Unlike the last installment in the
Elder Scrolls series,
Morrowind, Oblivion not only offers the possibility of normal mapping but requires it on every mesh for functionality ingame. Normal maps help to give a texture more dimension and more of a 3d look that is very different from the flat, polygonal look of meshes in older 3d games.
Fortunately for us, with the normal map plugins available for GIMP and Photoshop it is very easy to make normal maps for Oblivion. You can also use a program like Xnormal, but I'm still learning that one myself and haven't written a tutorial for it yet.
Important Preliminaries: The Modding Toolbox
1. You'll need the GIMP, a powerful image editing program. You can use Photoshop, but GIMP is free and I will be discussing commands and features of that particular program. Get GIMP and the GTK runtime environment (you need it to run GIMP) here:
The GIMP2. You'll need a .dds plugin for GIMP to be able to open the game's texture format. Get it here:
.dds plugin for GIMP3. You'll need a normal map plugin for GIMP to be able to generate normal maps. Get it here:
Normal Map PluginThis tutorial assumes you already have a texture for which to make a normal map or glow map. Here is a retexturing tutorial on this site:
Better Retextures in GIMP Why do I Need a Normal Map?
Oblivion is different from Morrowind in that every texture needs to have a normal map. Otherwise your mesh may look black or pink ingame. The normal map can basically be any copied .dds that is renamed to the texture name plus _n, as in mycuirass.dds and mycuirass_n.dds, but that's not the best way to do it.
With a flat normal map, your texture will look flat. With a lumpy normal map, your texture will look lumpy. With a translucent normal map, your texture will be very shiny.
How Do I get One?
The easiest way to do this in GIMP is using the GIMP normal map plugin (download link at the beginning of the tutorial) so make sure you have it installed. Then open your original texture. If the plugin is installed correctly, you should be able to go to filters - map and see a list that includes the word "normalmap." Click on it, and you get another dialogue with sliders.
Again, make sure the preview is enabled. With the default settings, you should see some sort of purplish thing in the window (it won't show a preview of the whole file with this one). This is because the normal map doesn't affect the color of the texture, but it tells Oblivion how much the texture reflects light in order to make it look like it has depth.
The Copout Normal Map
If you just don't want to deal with this, leave the menu up top at "four sample," and the scale at 1, and set the conversion below to "max rgb."
Then click "OK." This should give you a usable not-overly-shiny map. Then save the result as mycuirass_n.dds, or whatever an _n.dds version of your texture would be. Make sure it's in the same folder as your texture, so the game can find it. You don't have to change anything in NifSkope for this to work, it just has to be in the right folder.
The Better Normal Map
Here are some useful techniques.
The Lumpy/Worn Look
To get a look wherein you can see every scratch on a sword and every dent in the armor, try using Sobel 3x3 and setting the scale higher than 1. (Increasing the scale makes the texture's highs and lows more pronounced.) Look at the preview until you get something that looks like you want it. You can use Sobel 5x5 for something really extreme, but I've seldom found that necessary.
This will give a very shiny look as well. If you want it to be dull instead, go to image-flatten image before you save the normal map. You can also save as DTX5 and set your alpha channel completely black. GIMP has a channels dialogue under dialogues - channels. Unselect everything except alpha and do a bucket fill (shift + b) with the color black.
Carved Runes or Bas Relief
If part of a normal map seems to be popping out when you want it to look carved in (or vice versa, for that matter), try checking "invert x" and "invert y" before you hit the "okay" button. This will affect the whole normal map, so you want to be careful in your use of it. Remember, you can cut and paste parts of a normal map just as you can with a texture, so if necessary you can cut off the runes, normal map them separately, and paste them back on.
Smooth and Shiny
Go down to the dropdown that normally says "alpha = unchanged" and change it to "alpha channel = height." Most of your normal map will seem to disappear, with only the highlights standing out. You can get a little more depth by increasing scale, but you'll most often use this one on things that need to be shiny or translucent more than they need to stand out. Some fabrics, gems, and the occasional sword blade or ultrasmooth armor use this setting.
Don't make the mistake of setting "height source" to "alpha" in the dropdown that's just above the "alpha=unchanged" one, as that seems to make everything flatten out.
Glow Maps
Do I Need a Glow Map?
Not every texture will need one, and in some they're a bad idea. In general, glow maps are what you use when you want part of a texture to be very shiny and glowing but not the entire thing. This is used on the glass parts of the glass armor and weapons, for example, which is what gives them their look of glowing depth. It's also used to make parts of the daedric weapons glow in the dark.
I use it myself on weapons and selective parts of armor that I want to look slightly unearthly. This is also a good way to make things show up even at night or in dark places. Fiery runes are another fun use.
How Do I Get One?
You don't need a special plugin to make glow maps, because a glow map is just a black and white picture made from the texture. The very simplest glow map of all is just the original texture that you've completely desaturated (see the Hue/Saturation/Value section) of all color. Then you save it as mycuirass_g.dds and make sure it's in the same folder as the texture and the normal map.
Of course, that won't look very good. The game engine reads the glow map as "white=glow a lot, black=not at all," and gray areas often look wrong. Notice, if you open the glass cuirass glow map (something like glasscuirass_g.dds in your bsas under textures\armor\glass), you see white swirls on black, with the swirls being where the glass parts of the armor are. This keeps the chain mail or leather parts of the armor from glowing, which would just look wrong.
What I usually do first is to select the parts of the texture I want to glow. This is easier than it sounds, since it's usually one color or one set of shades that can be chosen using Edit-select by color. Then I do select-invert to select everything BUT that color or area. Now I go to Tools-color tools-brightness/contrast. Turn the contrast all the way up and the brightness all the way down. Now everything non-glowing is black. Select-invert again to go back to your intended glow areas. Now do the same thing, but turn the brightness UP instead of down. This should make your glow areas all white.
Do Select-none, and now "save as." Name the glow map mycuirass_g.dds, or whatever your texture name is with _g on the end. Again, make sure it's in the same folder as the texture.
I've recently found out that you CAN use a colored picture as a glow map. This can be useful if you want something to be one color and glow a different one. Here's a thread on the Niftools forums with some useful information:
Niftools Forum Thread NifSkope Reminder
NifSkope will only display glow effects under certain special circumstances, so you can see those best in a playtest. Latest versions of the program do somewhat show the effect of the normal map, but not the same way a playtest will.
You may also need to change a materials setting on the mesh in NifSkope to make your glow map show up in the game. Look at the material setting on the glass armor for a good example using the EnvMap2 property.
That's all for now - hopefully more later as I become less ignorant about alpha channels.
SickleYield