Bump mapping simulates the bumps or wrinkles in a surface without the need for geometric modifications to the model. The surface is perturbed according to a bump map. The perturbed surface is then used instead of the original surface, which gives the appearance of bumps and depressions in the surface.
There are two types of bump mapping: dot3 (or emboss) and EMBM (environmental bump mapping). Generally, dot3 works on older graphics cards (like GeForce2) and EMBM works on the newer cards (like the GeForce3 and above). Reality Factory currently uses EMBM bumpmapping for levels and actors and dot3 for actors. Most GeForce2 cards and lower do not support EMBM, but you might have a card that does. To find out whether your card supports EMBM, check the D3DDrv.Log (located in the main RF directory). If ALL of the following messages are in the log, then your card cannot do environmental bump mapping:
D3DMain_GetSurfaceFormats: Unable to find 88 (16-bit) bump map support
D3DMain_GetSurfaceFormats: Unable to find 556 (16-bit) bump map support.
D3DMain_GetSurfaceFormats: Unable to find 888 (24-bit) bump map support.
When creating bumpmap textures, you must specify an associated base texture. If your card does not support hardware EMBM bumpmapping, then Reality Factory displays this base texture instead.
You can use it on fullbright actors - no level lights are required. To view the actors outside of the game itself, you'll need to get a special version of the Actor Viewer application that can view bump map models.
You must use three textures when creating bump maps.
Base Texture
the normal texture you would use on the actor.
Bump Map
dot3: An RGB image that encodes the surfaces normals (X, Y, Z) as color values (R, G, B). Can be produced from high poly models with programs like Melody or from heightmaps using special plugins for your paint program.
EMBM: A grayscale texture for producing the "bumps." A 256-color image is most efficient, but the image can be 24-bit grayscale or 16-bit grayscale as well. White represents raised modulation, black represents indented modulation, and 128 gray represents no modulation.
Specular Map
The specular map can be a regular bitmap 8-bit all the way up to 24-bits in depth. The colors in the specular map will be treated as lights and will shade the object, bringing out the bumps defined in the grey-scale map. Colors toward the white end of the spectrum represent the part of the material that has specular (reflected light) and colors toward the black end of the spectrum represent the part of the material that has no specular (no reflected light).
These three bump map textures must have the following prefixes:
dot3:
BN0_ (base texture - that's a zero, not an "O")
BNB_ (normal map texture)
BNS_ (specular map)
EMBM:
BM0_ (base texture - that's a zero, not an "O")
BMB_ (bump map/grey scale texture)
BMS_ (specular map)
The rest of the filenames for the bumpmap textures must be identical. For example:
BM0_EARTH.BMP
BMB_EARTH.BMP
BMS_EARTH.BMP
To make the bump texture, make a grayscale image of your base texture. You can modify it if you want - remember that the white areas represent the bumps and the black areas represent the depressions. One way to modify it is to change the intensity/brightness and contrast values.
When making the specular maps, it is important that they are the same size as the other textures in the series. To make the specular maps, you can use any tool you like. It's not a "normal" map, so you don't need a special tool to create it. The specular map is just a regular texture interpreted as light.
Use your modelling application (TrueSpace, MAX, etc.) to paint your actors with material "BM0_XXXX". Then add the textures "BMB_XXXX" and "BMS_XXXX" as additional materials through actor studio.
The code looks for "BM0_" as your actors are being loaded. If it sees this string, it attempts to create a bumpmap texture. Remember, you must have all three materials for actors in order for bumpmapping to work. The "BMB_XXXX" material is used as basically a height map, and the "BMS_XXXX" material actually acts as a light. Without the "BMS_XXXX" material, you effectively have no light and therefore don't have a bump map effect.