Detail brushes are a class of brushes that are grouped to avoid
unwanted face splits when small, detailed brush objects meet large
surfaces. Detail brush geometry is made by creating a func_detail entity out of a set of brushes. The brushes that are included in the func_detail
will not clip (or split) non-detail brushes. A common example is a
cylinder brush (such as a pillar) touching a floor in a room. Normally
the cylinder would split the floor face into many smaller faces where
the two brushes meet. By making the cylinder detail geometry, no such
splitting will occur. Any rotated piece of brush geometry is also a
good candidate, and will cause fewer vbsp splits if it is made into func_detail.
Detail brushes do not block visibility and cannot be used to seal
the world or areaportals. Since they do not block visibility, detail
brushes have a side benefit of simplifying the visibility set. Proper
use of detail brushes can greatly decrease the time it takes for vvis to compile the level.
Brushes that are func_detail are an
entity in the Hammer editor, but the entity information is discarded
after the map is processed in VBSP. This occurs to reduce the memory
requirements of the geometry. The entity information is no longer
needed once vbsp has used it for reducing
splits. In the engine, surfaces that were created with detail geometry
are identical to all other solid brush geometry in the level.
Objects that are small, complex, and/or do not seal areas are good
candidates for detail geometry. Examples include pillars, gates, small
rocks, fences, debris, piers, etc. A good way to tell if you need to
switch non-detail geometry to detail geometry is to use glview. In places where you see a high density of leaves in glview, you'll want to switch some of the geometry in those areas to func_detail.
See func_detail in the entity documentation for more information.
See sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf for an example of how detail geometry can be used to reduce face splits.