1. Requisites
- Vluzacn's ZHLT v34
- zhlt.wad
2. Creating the effect
Skew a brush to closely match the angle of your light source. Since the base faces of the brush are meant to be invisible, they should be textured with CONTENTWATER in order to mirror the side faces of the brush, making it more realistic. Lastly, the brush should be an entity, such asfunc_illusionary
, with Render Mode set to Additive. The translucency can be set with FX Amount (1 - 255). If you use NULL or black_HIDDEN, not all of the side faces will be rendered at the same time, and the effect is invisible from some angles (i.e. inside or directly below the volume). Here are a couple examples of volumetric lighting with and without the use of CONTENTWATER.

A scrolling texture could also be used with a
func_conveyor
entity.
3. Errors
3.1. Error: WATER brushes not allowed in detail
This error is caused by any of the following keyvalues in your entity:- zhlt_clipnodedetaillevel
- zhlt_detaillevel
3.2. Error: mixed face contents
If your brush is textured with CONTENTWATER, then this error is caused by any of the following textures on your brush:- BOUNDINGBOX
- CLIP
- CLIPBEVEL
- CLIPBEVELBRUSH
- CLIPHULL1
- CLIPHULL2
- CLIPHULL3
- CONTENTEMPTY
- ORIGIN
- SKIP
4. Volumetric lighting textures
Texture | Group |
---|---|
C0A0YELLOW | valve/halflife.wad |
C1A3YELLOW | valve/halflife.wad |
FADE | valve/halflife.wad |
FADE2 | valve/halflife.wad |
CULIGHTA | cstrike/cs_havana.wad |
CXLIGHTA | cstrike/chateau.wad |