Func detail

From Valve Developer Community
Revision as of 00:12, 18 October 2008 by Brandished (talk | contribs) (spam removal)
Jump to navigation Jump to search

Template:Wrongtitle

func_detail is an internal brush entity that does not affect visibility or cause other brushes to be sliced - in other words that does not affect the structure of the rest of the map. It should be used on all brushwork that does not form the 'backbone' of a map (and that is not already tied to an entity).

A world brush (left) and a detail brush. The blue lines are visleaf boundaries, where the world has been chopped up, leading to longer compile times and lower performance.

Valve provide an example map at sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf. You can also load up the HL2 map sources and hide detail brushes with their auto visgroup to see where Valve used them.

Caveats

  • Detail brushes cannot be used to seal a map.
  • Because detail brushes do not chop world brushes, light can seep underneath them if the other surface's lightmap scale is larger than the detail brush is wide/tall. If you encounter this, manually slice the underlying brush in two (with Shift+X).
    • This effect can cause detail brushes with lots of surface contact to become inefficient, because the surface beneath them is being rendered too!
    • Detail brushes do chop each other, however.
  • Surfaces on very thin (about 2 units thick) detail brushes have been known to disappear at certain distances. As a workaround, use func_brush instead.
  • Brushes with translucent materials applied, or which are displacements, will be treated as detail.

Good candidates

There's not much left of City 17's rail station plaza once we remove detail brushes. Valve have missed a few world brushes as well...
  • Pillars, plinths and supports
  • Free-standing walls
  • Suspended walkways
  • Stairs (create a smooth wedge-shaped brush underneath)
  • Small buildings
  • Rotated brushes
  • Very small or thin brushes

See also

(These duping pages should really be merged into this one.)

Keyvalues

(You'll probably never need to change these.)