Bump and Spec map creation, example

First, make sure you have installed NVidia tools for Photoshop (GIMP users, sorry..): http://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop
For this tutorial you need the Normalmap Filter plugin and DDS plugin, both installed with the package.
I recommend that you install DDS thumbnail viewer at the same time so you can browse thru the DDS files inside Windows more easily.
You will also need the example image, get it here: DOWNLOAD: http://cream.galleria.fi/BTB/Tutorials/Bumb_Spec_Mapping/sand01.jpg

Open Photoshop and load image 'sand01.jpg'


Change image size to power of 2, in this case 1024x512


Save diffuse map, use these settings:


Start creating bump map.

Use save as to save it under different name. It is very good practice to use _bump, _spec and _diffuse in the map name. in this example, save it as 'sand01_bump.dds'

Desaturate the image

Both bump and spec maps are not RGB images. Regular bump maps are greyscale but gMotor2 (rFactor, Race07, GTR2 etc.) uses Normalmapping, that why we need the NVidia Tools. Specmaps are greyscale.


Optional: Smoothing

Copy background layer ( ctrl+j )and set it as "Overlay"


Use Gaussian Blur on the overlay layer.This will make the transitions of "peaks & valleys" more natural and smoother. This step is optional and depends heavily on the target, if you want extra crisp, you can use other filters but for dirt, cement etc. i have found this step to be very important.


The results:

Left= original, right = smoothed.


Merge layers

Check that tiling is still correct.

Use offset (Filter->Other->Offset), exit with cancel, you don't want to offset this map. This is just a check, sometimes the gaussian blur can produce visible lines. in this case, it didn't. lucky me…


Increase height difference with Levels.


Convert the image to normalmap (Filter->NVidia Tools->NormalMapFilter)

Experiment on Scale settings, larger number means more height difference. NOTE!!! Remember to flatten the image first, you need to have one background layer when creating opaque bump maps (non-transparent). We will look at transparent textures in another tutorial.


Save the bump map.


Open Sand01_diffuse.dds and save it as sand01_spec.dds

Desaturate the image

Use levels

Use lighter settings than with bump map. Limit the output at the same time, sand is not mirror!! This is of course dependent of the texture type, metals for ex have their "dark" output limited. For a reminder, white means very reflective, black means matte.




Test the textures.

use BTB material editor to combine those maps.

As you can see, we created some flat spots to the bump map. That is not a bad thing, otherwise we could ended up with very smooth bump map with only few large features. With more refined level and scaling can produce more details but since this texture is suppose to be on the ground, thus we look at them at a shallow angle, we need to exaggerate the effect a bit. You can also straight on paint and manipulate the bump map, try to use inverted image etc. for different purposes. Experiment freely, you need multiple techniques.

Try using different size maps or define the scaling in BTB material editor to non dividables. For ex put diffuse 1.0/1.0, bump to 2.3/2.3 and spec to 6.5/6.5 and use different mipmaps to reduce pattern formation. There instances when 1=1 scaling is good for all maps, mostly when there is distinct height visible in the diffuse map, rocks, cliff faces, brick walls etc. With gravel, cement, tarmac and such kind of materials, different scaling could be better.

Every material is different and has its own requirements. Experimentation is the key until you know what effect you need and how to produce it. Feel free to post your finds here. One good place to find new tips and tricks is RaceDepartment that hosts the official Bobs Trackbuilder forums: http://www.racedepartment.com/forum/forums/bobs-track-builder.162/ There are a lot of experienced track builders that are happy to help you. Completing all the tutorials here is a good way to handle all the basics.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License