Texturing Tips

This contains some information and tips about texturing for games.

Quick Intro to texturing

Textures for games are usually made for BSP geometry and Static Mesh geometry:

  • BSP textures are tileable in all four directions (left, right, up, down) and are used on repetitive areas such as walls, floors and ceilings. In most cases, BSP textures have some sort of dividing or 'grout' pattern to them. Floors usually have these grouts between floor plates, while walls usually have some trimming on top or at the bottom (or both)..

  • Static Mesh textures are split into UV islands (a.k.a. charts) and are used on unique looking decorative meshes such as statues, pillars, doorways, barrels and so on..

Situations when you can use Static Mesh texture on a BSP surface are very rare. On the other hand, using BSP textures on Static Meshes is a common practice. It is usually being done when having to build 'compartment'-like environment pieces that use BSP architecture like, for example, an entire room corner or even a floor plan that is built as a single Static Mesh.

There are 3 basic types of textures:

  • Diffuse. This is the base texture which contains the most information: color, dirt, wear & tear etc.

  • Normal. It contains all 'relief' detail, such as bumps, dents, cracks and so on.

  • Specular. It contains information about how specular and shiny each part of the texture is.

For anyone who is new to texturing here are some links that will be very useful:

CG Textures - Online texture resource: LINK

How to make seamless tileable textures: LINK

3d Motive:

-Making a 'skydome' texture: LINK

-Using diffuse to make specular map: LINK

-Unique scratches: LINK

CG Tuts Plus - Ben Bolton (4th video is about texturing): LINK

Evan Herbert (aka racer 445):

-Painting metal textures: LINK

-Sword texturing tutorial: LINK

Once complete, the diffuse, normal and specular textures are combined into a material. Material then gets applied to the walls, floors and other geometry in the game. And that is what gamers will see as a final product. Here is an excellent tutorial series on materials:

3d Buzz - UDK Materials: LINK

Texture Guide

This part explains how to plan & build your textures to fit your game world scale. Here are some basic values used inside of UDK. Term UU stands for Unreal Units. It is a generic value that is being used inside of Unreal Engine and UDK.

  • Basic grid unit: 16 UU.

  • Player height: 96 UU.

  • Wall height: 192 UU.

  • Wall width: 192 UU.

  • Door height: 128 UU.

  • Horizontal and vertical spacing between the rooms is 16 UU.

Notice how two staircase pieces are used to connect floor with ceiling and that the vertical spacing between the steps is 8 UU.

Also notice how the selected staircase is a bit 'thinner' compared to the black one. That was done to avoid z-fighting between the staircase and room ceiling. Z-fighting happens when different geometry is occupying the exact same space. Game engine will then try to draw both at the same time, which will appear as a flickering geometry in that area. So, in this example, the black staircase can be considered as a badly done mesh, while the white one is a good mesh, because it has 2 UU worth of vertical 'padding'.

Whenever building game worlds it is very important to match the grid of your 3d modeling package to the grid of the game engine that you are using. Also, whenever using a new game engine, it is good to run a few import tests and see if the model scale, orientation, UV map and Smoothing Groups are a perfect match to those of your 3d app.

Now, when making BSP textures it is very important that they fit to your game world the best way possible. It is never a good idea to have texture detail that intersects geometry, like, for example, having your doorway shape cut directly into bricks on your texture. It looks bad and breaks the illusion of a brick wall that you are trying to create. It is much better to have brick grouts fitted & aligned to your geometry.

If you are sculpting your bricks inside of ZBrush, it is easy to align & fit, since you will be sculpting directly over your reference wall mesh (192 UU x 192 UU). But, in most cases, you will be using photo resources for BSP texturing. And then it is good to have a texture guide image, like the one on the image below. It helps you translate scale of your 3d game world into the 2d world of programs like Photoshop. This shot shows how to adjust it in order to fit to Unreal Units and default world scale used inside UDK.

This 'sandstone brick' texture was done by manually fitting each brick row to the grid with 'Select/Transform Selection' tool. Then, the top trim was fitted in it's separate layer the same way.

In cases when you have smaller bricks, there is no need to fit each individual row. Instead, organize rows in groups and then fit those groups, one by one. In this example, I placed 3 rows in a group and then fitted that group manually, using Transform Tool. Then I repeated the process for all remaining rows. That way, it took the same ammount of time as when I was fitting the big, sandstone bricks from the previous example.

The texture guide used in this example applies to the world scale that uses 16 UU as the base unit, but you can always use lower grid values like 8 UU or 4 UU, if you want to control fine detail.