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


Site Stuff






Feeling Blue

What's your favourite shade of blue?














18 mins


28 mins

Dr. Orange

32 mins


1 hours


1 hours


1 hours


1 hours

Instant Mix


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