Texturing tutorial

This document is broken up into 8 sections outlining the different aspects of texturing and use in maps for q3 Urban Terror.

> Proper tiling
> The high pass filter
> Trim technique
> Advanced tiling
> Dirtying textures
> Misc. tips/tricks
> Map color theory
> Simple shaders (shiny windows)

Misc tips/tricks :

I thought I'd share a few other smaller details that didn't fit directly into a specific tutorial. These are general hints and things I have found out while working on Urban Terror, take them for what they are worth.

Noise Filter

A trick I have learned only recently is that a properly applied noise filter can drastically improve textures in quake3. This appears to be due to how quake3 blurs all textures anyway, so areas where color is fairly flat tend to translate poorly inside the engine.

To solve this, you run a noise filter on you current texture. The texture on the right is a perfect example of a texture that needs some noise added.

The plain wall texture

In order to add noise, you need to go to filter>noise>add noise... From here, make sure you have gaussian distribution selected, and monochromatic noise checked. Without monochromatic, the noise will be multi colored like a rainbow at higher levels.

I have found that a noise value around 2.5 to 3.5% is just enough noise to make things look better, but without turning the image into a texture of complete dots.

Adding noise with the noise filter

Here is the final, more noisy image. You can compare this to the upper image and just know that this will render better in engine.

To prove my point however, see the next image.

Final, more noisy texture. Isn't that better?

Here we can clearly see the upper half that is using the new noisy texture - and how much it improves upon the visual quality inside the quake3 engine.

Tiling problem with trim

To lead into describing this problem, it is important to know two things:

1) On the default grid in radiant, (hitting the number 4 on the keyboard) one unit is equal to 16 pixels of image size. This is nice to know when creating trim, knowing that a 32x32 texture trim will be exactly 2 units tall.

2) Also on the default grid in radiant, this means a 256x256 texture will cover 16 units.

The reason this is important, is that the texture placement even at 0,0 is not perfect - and you will notice that when using the trim method I described earlier that a thin dark line will appear if the height of the brush is exactly 16 units. This is due to the fact that using the trim method, we do not tile the brush vertically, and it "wraps around" by about 1 pixel.

To counter act this, just make sure that the brush size is smaller then the texture size of your trim. So if you have a 256x256 trim, make sure the brush size is about 1 unit shorter then it needs to be.

Below is an image that shows you what I am talking about. The trim brush in this image is exactly 16 units high, and the darker trim of the image is wrapping around. Had I made this brush 15 units high and lowered the main wall brush/texture to meet, this would have been avoided.

Lighting and flat textures

This is mainly a little trick I have been playing around with for ground textures, and textures that lay flat. Textures that lay completely horizontal tend to accumulate lighting extremely fast with the way that q3 lights maps. To get around this, I darken my ground and outside floor textures to varying degrees to compensate for overlighting.

It's a pretty easy thing to do - and very needed on alot of maps. Mainly because when your lighting is perfect for lighting the walls properly, the ground ends up being burnt out and totally overbright in almost all day light mapping situations in q3. The reason for this is not known to me at this time, only that it appears q3 does not bounce much lighting onto vertical architecture, such as walls, so they need a higher direct lighting value. Regardless of the reason, the way to get around this is to darken your ground textures a bit when created a daylight map. I usually save this until a later stage in mapping, until I know how much to darken each specific ground texture.

To explain this visually, I have taken a shot of the pre - 2.0 version of Abbey, and simulated what I did to fix the ground texture for the 2.0 version of Abbey.



Texture sizes

There seems to be some confusion regarding texture sizes in q3 among some people, because I keep downloading maps and finding texture sizes like 163x293, etc. It is important to know that if a texture is not a power of 2, it will blur in game and lose at least 25% of visual fidelity.

Remember, powers of 2 is NOT the same thing as being divisible by 2. So even though 192x192 is divisible by 2, it will still blur in the q3 engine.

Therefore, the only sizes you should be using in map creation are thus:

8, 16, 32, 64, 128, 256, 512, 1024

Any combination of these works, such as 64x256, 128x128 or 32x8. I would avoid using textures larger then 256 in Urban Terror however, as the FPS strain gets pretty hefty with a few of those large textures floating around. Most walls and floors can be created with 256 or 128 textures.

Check texture color saturation

I have noticed that many maps have over-saturated textures, meaning the color is too powerfull. This can often make a great texturing job seem "cartoony" if left unchecked. Real life is often best portrayed slightly less colorfull then you might think. Below I provide two images of my map, Casa and illustrate my point. You can adjust image color saturation by going to image>adjust>hue/saturation.

Here we see an oversaturated view of Casa. Looks nice but the color is just too overwhelming.

Here we have how Casa looks currently. Notice how much more "real" this feels just by having a slightly lower color saturation level in all of the textures.

Next tutorial - Map color theory