Check out Half-Life Re-imagined competition results!
Check out Skewing textures in Hammer, our newest tutorial!
Welcome, timadam, our newest member!


Site Stuff






Feeling Blue

What's your favourite shade of blue?














4 mins


9 mins


35 mins

Instant Mix

44 mins


46 mins


54 mins


56 mins



A gaming and technology blog by TWHL admins Penguinboy and Ant. A music blog by TWHL users Ant and Hugh.

Detail textures in Half-Life

By Philip Searle

First off, what are detail textures? A detail texture is simply an extra texture that is faded in as you get closer to a surface, providing extra detail instead of the usual blur when a texture is enlarged. A picture tells a thousand words, so have a look at image one and see how much of a difference detail textures can make.

Image 1: Close-up of a texture, with detail texture
(right) and without (left). Click to enlarge.

So, how do you get detail textures into your map? Well, you'll need two things: the detail textures themselves and what I call a "detail texture list file".

The Detail Textures

The detail textures themselves are simply images, usually with 50% grey used as a base colour. Darker and lighter greys are used to make shadows and highlights. Detail textures should be a power of two in size, as 256x256 is the maximum size Half-Life will load. I found that 128x128 often works well. When you've got the detail texture looking how you want it, save it in the gfx/detail/ folder as a 24-bit uncompressed TGA. It's important you get that bit right - any other format and Half-Life won't load it properly.

Image 2: The detail texture
used to produce image one

Detail Texture List File

The list file is what tells Half-Life which detail textures to use on which surfaces of your map. It is a plain text file and should be placed in the same directory as your BSP. It should have the same name as your map with "_detail.txt" appended. For example, if I was adding detail textures to ns_example.bsp, then the list file would be called ns_example_detail.txt.

The list file should contain one line for each texture you want to have a detail texture. Each line should have four items, seperated with tabs. The first item is the Half-Life texture name. The second item is the path to the detail texture, relative to the gfx directory and without the extension. The third and fourth items specify the x and y scaling for the detail texture. If that all sounded a bit confusing, here's an example: say I wanted to use the detail texture gfx/detail/ground3.tga wherever the texture out_pav3 occurs. I might use a line looking like this:

out_pav3    detail/ground3    10.0    10.0

And that's it! If you load up your map, you should see the detail texture.


  • Detail textures only appear if the cvar r_detailtextures is set to 1
  • The contrast of the detail texture determines how far away it appears. Light values appear when you are close to the texture; dark values appear when you are further away.
  • Detail textures don't appear correctly when additive rendermodes are used, but do appear properly when solid rendermodes are used.
  • Be careful with random-tiling textures (-0texture, -1texture) - you need an entry in the list file for each texture in the set.
  • You can use colour in your detail textures - the texture will be drawn in colour but the contrast still determines opacity