GIMP: Quality Normal Maps

Revision as of 00:51, 19 November 2007 by imported>Trigonous


Introduction

This tutorial is the process used to create great looking Normal Maps using GIMP. Normal Maps created using this process are as close to the actual Bethesda style used in TES:Oblivion as currently possible. They will also render great looking image textures with high quality light reflection. This article's purpose is to provide a easy to follow step-by-step instruction to create these high quality Normal Maps.

For more information on what Normal Maps are go here:
For more information on what GIMP is go here:

Getting Started

Download and install the following applications if you have not done so already. To use this tutorial successfully I recommend using the versions I have listed.

Loading Your Image

After downloading and installing all the applications you are now ready to begin. Let’s get started!

  • Load GIMP by double clicking the desktop link or clicking Start\All Programs\GIMP\GIMP 2
  • Click File\Open (CTRL+O)
  • Image Window: Click Dialog\Layers (CTRL+L)

NOTE: Your image must conform to the standard template used by Bethesda. This template requires that your image must contain a single layer for the image called ‘main surface’ and mipmaps.

Preparing Your Image

You must first Merge Down all your layers into a single layer. Then rename this layer to ‘main surface’.

  • Image Window: Layer\Merge Down (repeat until only one (1) layer remains)
  • Layer Dialog Window: Double Click the layer name
  • Type: main surface (cap sensitive)
  • Press Enter on the keyboard

NOTE: Now you must remove any mipmaps that the image has. This is only necessary if you are creating a Normal Map from an existing Bethesda .dds file.

  • Layer Dialog Window: Click the first layer named ‘mipmap#’
  • Press the Trashcan icon located at the bottom right ‘Delete Layer’
  • Repeat for each of the remaining mipmaps so that all that remains is ‘main surface’

Creating Alpha Channel

You must now add Alpha Channel to your image so that the Normal Map generator can easily distinguish the perception of height contained in your image.

  • Image Window: Layer\Transparency\Color to Alpha
  • Color to Alpha Window: Click the long white bar next to ‘From:’
  • Color to Alpha Color Picker Window: HTML Notation: Enter 000000

NOTE: If entered correctly, the current color will be Black.

  • Color to Alpha Color Picker Window: Click OK
  • Color to Alpha Window: Click OK

Creating Normal Map

Your image will now look ghostly compared to its original state. This means you have successfully converted gradients of black to your Alpha Channel. Good Job! Now to create the Normal Map!

  • Image Window: Filters\Map\Normalmap…
  • Normalmap Window: Click ‘3D Preview’ button
  • Normalmap-3D Preview Window: Hold the Left Mouse Button over the preview window and drag upward so the Quad tilts back.
  • Click the light bulb icon at the top left (Rotate Light)
  • Hold the Left Mouse Button over the preview window and drag toward the lower right until you can see good shadow contrast.
  • Click the sphere icon next to the light bulb icon (Rotate Object)
  • Normalmap Window: Options – Wrap – Add Checkmark
  • Filter: Pull Down Menu – Select ‘3x3’
  • Scale: 6.00000
  • Height source: Pull Down Menu – Select ‘Alpha’
  • Alpha channel: Default ‘Unchanged’
  • DU/DV map: Default ‘None’

Now go back to the Normalmap – 3D Preview window and see the difference. You should now be able to clearly see the texture in the image. You have successfully created a high quality Normalmap.

  • Normalmap Window: Click OK
  • Image Window: File\Save As (SHIFT+CTRL+S)
  • Save Image Window: Rename your file using the original image name but add _n.tga at the end. [Example] Original: myimage.dds ; Becomes: myimage_n.tga
  • Choose the same directory as your original image.
  • Click Save
  • Save as TGA Window: Uncheck ‘RLE compression’ and Uncheck ‘Origin at bottom left’
  • Click OK

Converting Your Images to DDS Format

DDS is the image format used by the Gamebryo Element Game Engine for texturing meshes. Your image files must be in the .dds format to render in the game. To avoid confusion and a debugging nightmare it’s HIGHLY RECOMMENDED that you follow the same directory structure as created by Bethesda when saving your image or mesh files.

NOTE: We will not be using the DDS Export PlugIn that was installed into GIMP to convert our files to DDS format. Reason is that problems have been seen with using the GIMP converter and it is HIGHLY RECOMMEND using an external converter. If the external converter is not used, the textures can look checkered in game, and will look horrible under high lighting conditions. However, using the GIMP converter to import DDS files works fine.

  • Load DDS Converter 2.1: Start\All Programs\DDS Converter 2\DDS Converter 2.1
  • Click ‘Options’ located to the right of ‘Output Format’
  • Options Window: General\On success\cancel: Uncheck ‘Close DDS Converter 2’
  • DDS\DXTc format: Choose DXT3
  • DDS\Options: Checkmark ‘Build mipmaps’
  • DDS\Options: Number: 9
  • Click OK
  • Use the ‘Look In’ pull down menu to find the directory that your images are saved in.
  • Choose your original image file name in the list box. [Example: myimage.dds]
  • Check that the ‘Output format:’ Says ‘DirectDraw Surface (*.dds)’
  • Click Convert
  • Progress Window: Click Restart
  • Choose your _n.tga file name in the list box. [Example: myimage_n.dds]
  • Click Convert
  • Progress Window: Click Close

CONGRATULATIONS! Your original image and Normal Map have been converted to .dds format and they are ready to be applied to a mesh. Search this Wiki for tutorials on skinning meshes if you need help with that topic.

Appendix

You can create deeper or shallower textures in the Normalmap Window by adjusting the various parameters. I suggest you play around with them to see what they do. Below is a brief explanation of how they will effect your Normal Map.

Filters:

  • 4 Sample – Very grainy. Use for rock or other rough textures.
  • 3x3 – Grainy. Use for scratched metals or other rough textures.
  • 5x5 – Smooth. Use for smooth metals and wood.
  • 7x7 – Smoother. Use for cloth and furniture.
  • 9x9 – Very Smooth. – Use for polished metal and gems.
  • Sobel – Not used.
  • Prewitt – Not used.

Minimum Z: The lowest texture height. Increase this to set the minimum height on the Normal Map.

Scale: This is the biggest factor in creating texture depth. 1-2 is smooth, 5-8 medium, 10 – 15 rough.

Height source: We are using Alpha Channel

Alpha Channel: Leave this as Unchanged.

DU/DV map: Choose a different map to create some interesting textures.

Options:

  • Wrap – ALWAYS USE THIS for textures that will be wrapped to a mesh.
  • Invert X/Invert Y – These invert the shading on the specified axis. Selecting both of these will fix a texture that seems to be inside out.
  • Swap RGB – Not used on Alpha Channels.