Introduced by Vluzacn's Compile Tools, this brush "entity" functions as an intermediate of proper brush entities (such as
func_wall
), and world brushes and can help reduce wpoly count by preventing unnecessary face splits (chops).
Similarly to world brushes it doesn't support render modes and will chop, and be chopped by, touching geometry. However unlike world brushes, how this brush will chop, or be chopped, by touching world brushes and
func_detail
's can be controlled using its
Detail level property and any detail level greater than zero will cause it to be ignored by VIS.
Further it can have its clipping information removed, becoming fully non-solid, using the
Passable property.
The entity is turned into an ordinary world brush as part of the compilation process.
Attributes
- Detail level (zhlt_detaillevel) - The brush's detail level. Details will be chopped by world brushes and details with a lower level than itself.
- Lower its level to chop others (zhlt_chopdown) - Allow the detail to lower its detail level by this much to chop other details (and world geometry if it can lower down to zero).
- Raise its level to get chopped (zhlt_chopup) - Allow the detail to raise its detail level by this much to be chopped by other details. Mostly useless in most circumstances.
- Priority when faces overlap (zhlt_coplanarpriority) - Helps prevent z-fighting between two or more overlapping detail brush faces by giving each detail its own priority. The two brushes must be on the same detail level to make use of this priority (use detail level 0 to work with world brushes).
- Detail level of cliphulls (zhlt_clipnodedetaillevel) - Functions similarly to detail level, except for clipnodes. Most of the time it should be left with its default value unless issues (usually related to complex geometry) is encountered.
- Passable (zhlt_noclip) - Whether to strip the
func_detail
of its clipping information. Useful to prevent generating unnecessary clipnodes for small details.
Flags
The entity has no flags.
Detail Level
- Level 0 - This is the same level as ordinary world brushes. Behaves just as world brushes with face chopping. Will block VIS.
- Level 1 - The default detail level. Will be chopped by world brushes and level 0 details, but won't chop level 2 and up. Is ignored by VIS.
All levels from 2 and up behaves just as level 1, but will be chopped by any level equal or less than its own detail level, and chop any details of a greater level.
This continues ad infinitum.
Notes
- Despite becoming an ordinary world brush during compilation, it cannot be used to seal the map. It is kept separate from ordinary world brushes during processing of Hull 0 and as such cannot be used to prevent leaks. Only ordinary world brushes should be used to close up a map.
- Even if Passable is set to Yes (
zhlt_noclip 1
) it will still be affected by decals such as sprays and bullet holes.
func_detail
's are useful alternatives to func_wall
's on complex maps where you need to keep the BSP model count below the engine limit of 512, as func_detail
's don't contribute to it (it all becomes part of the world). Do note that it still contributes to the max_worldleaves limit (4096).