This tutorial was written for anybody working on the project and details the outlines used when creating the game. Much of this is suggestions, like specual should have half width and height, and so on. Still it should be pretty valuable for anybody wanting to do their own models and all of the guidelines are meant to make life easier and increase in-game performance.
The following be sort of a set by set guideline of the process to create objects for the game. Hopefully this will give a clear view of the steps that needs to be taken when creating graphics.
Modeling
This is preferably done in Maya and the latest Collada plug-in shall be used. This has been included in the “data” folder.
Make sure that the unit type is set to meters!
The object shall be positioned in the file so that the bottom of the object is at the center of the screen.
When texturing the objects, make sure that the diffuse texture is what is set as texture for all sub meshes.
Material
Each material will require one or more the following textures:
Diffuse
Size: Normal.
File format: dds, dxt5.
Suffix: None.
This is simply the color and is needed for as good as all material.
Normal map
Size: Normal.
File format: dds, dxt5.
Suffix: “nrm”.
The normal map for the material and uses the standard format rgb = xyz and is in tangent space.
Specular map
Size: Half of diffuse
File format: dds, dxt1.
Suffix: “spec”.
The specular map handles the specular intensity and power for each pixel. The intensity uses the R channel and the power in the G channel, the B channel is not used and shall be black. Intensity sets the amount of specularity applied to a pixel, the higher value of the channel, the higher intensity. Power sets the sharpness of the specular highlight, a low value give a dull and diffuse look, while a high value give a shiny look.
Alpha
Size: Normal
File format: tga, single channel (greyscale).
Suffix: “alpha”.
Sets the alpha for each texture and for any lit surface this is a simply 0 or 1 decision per pixel since a lit pixel can never be half transparent, only fully visible or invisible.
Height map
Size: Half of diffuse
File format: tga, single channel (greyscale).
Suffix: “height”.
Height map is more like a depth map actually. White = largest depth, Black = no depth and this is important to remember when creating it.
Illumination map
Size: Half of diffuse
File format: dds, dxt1.
Suffix: “illum”.
This map will be added additively on top of the model when rendering and will not be affected by lighting. It is useful for creating glowing surfaces such as lightbulb, ember, etc.
With size means the size of texture width and height. So if diffuse is 512×512 in size, then a map with half of the size of diffuse will be 256×256. Normal simply means that it has the same size of the diffuse texture. Also note that the size of map might be specified otherwise in the description of an object, and if so the specified size shall be used.
All of the textures in a material (and the material itself!) must be named according the model which uses it. An example of naming is as follows: