Func detail: Difference between revisions
No edit summary |
Evanjohnman (talk | contribs) m (Confirmed observation, noted areaportals not being sealable by func_details) |
||
Line 17: | Line 17: | ||
== Caveats == | == Caveats == | ||
* Detail brushes cannot be used to [[seal]] a map. | * Detail brushes cannot be used to [[seal]] a map, or areaportal areas. | ||
* 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 {{key|Shift|X}}). | * 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 {{key|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! | ** 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. | ** 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. | * 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. | ||
* World brushes with translucent materials applied, or which are [[displacement]]s, will be treated as detail. | * World brushes with translucent materials applied, or which are [[displacement]]s, will be treated as detail, and cannot seal areas. | ||
**World brushes w/ translucent material still appear to chop leaves in Hammer. | |||
* Detail brushes will, in some cases, merge faces with other detail brushes, and on occasion, world brushes, which can cause them to create leaves. | * Detail brushes will, in some cases, merge faces with other detail brushes, and on occasion, world brushes, which can cause them to create leaves. | ||
* Under normal conditions, any time a detail brush contacts a world brush, [[VBSP]] will note the junction and optimize it. This connection is known alternately as a T-junction and a water index, and there is a limit to the number of T-Junctions VBSP will attempt to fix (65,535). Excessive use of detail brushes in contact with world geometry could cause VBSP to abort compilation with an error. Using the <code>-notjunc</code> option will skip this optimization at the price of possible visual inconsistencies. | * Under normal conditions, any time a detail brush contacts a world brush, [[VBSP]] will note the junction and optimize it. This connection is known alternately as a T-junction and a water index, and there is a limit to the number of T-Junctions VBSP will attempt to fix (65,535). Excessive use of detail brushes in contact with world geometry could cause VBSP to abort compilation with an error. Using the <code>-notjunc</code> option will skip this optimization at the price of possible visual inconsistencies. | ||
Line 40: | Line 40: | ||
* Rotated brushes | * Rotated brushes | ||
* Very small or thin brushes | * Very small or thin brushes | ||
* 3D | * Brushes in the 3D skybox | ||
== Keyvalues == | == Keyvalues == |
Revision as of 17:15, 30 April 2016
Template:Base brush It creates a brush that does not affect visibility or cause other brushes to be chopped. All brushwork that does not form the 'backbone' of the world (and that is not tied to a real entity) should be detail.
Valve provides 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.

r_drawfuncdetail
to hide detail brushes in any map while it is running.Effects
The point of creating a detail brush is precisely to avoid effects, which makes what it does difficult to describe. You may have more luck learning about the behaviour of world brushes and visleaves, which are what detail brushes exist to not affect. Nevertheless:
Above are a world brush (left cylinder) and a detail brush (right cylinder). The blue lines are visleaf boundaries. The world brush has chopped the map into nine oddly-shaped segments, leading to longer compile times and marginally lower performance, while the detail brush has not changed anything.
Caveats
- Detail brushes cannot be used to seal a map, or areaportal areas.
- 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.
- World brushes with translucent materials applied, or which are displacements, will be treated as detail, and cannot seal areas.
- World brushes w/ translucent material still appear to chop leaves in Hammer.
- Detail brushes will, in some cases, merge faces with other detail brushes, and on occasion, world brushes, which can cause them to create leaves.
- Under normal conditions, any time a detail brush contacts a world brush, VBSP will note the junction and optimize it. This connection is known alternately as a T-junction and a water index, and there is a limit to the number of T-Junctions VBSP will attempt to fix (65,535). Excessive use of detail brushes in contact with world geometry could cause VBSP to abort compilation with an error. Using the
-notjunc
option will skip this optimization at the price of possible visual inconsistencies.
Good candidates

Any brush which doesn't significantly block the player's view should probably be detail. Specific examples include:
- Pillars, plinths and supports
- Free-standing walls
- Suspended walkways
- Steps (create a smooth wedge-shaped world brush underneath)
- Small buildings
- Rotated brushes
- Very small or thin brushes
- Brushes in the 3D skybox
Keyvalues
- Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <integer choices> (removed since
)
- The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices Warning:If these are used, the object may break when the user switches their DirectX settings.[missing string]
- 0 - Default (no bounding)
- 60 - DirectX 6 (!FGD for mindxlevel)
- 70 - DirectX 7
- 80 - DirectX 8 (GeForce4 Ti & FX 5000 series)
- 81 - DirectX 8.1 (GeForce FX 5800, 5900 & Radeon 8500/9100 and 9000/9200)
- 90 - DirectX 9 Shader Model 2
- 92 - OpenGL аналогичен DirectX 9 Shader Model 2 (using ToGL;
only) !FGD
- 95 - DirectX 9 Shader Model 3 (in all games since
)
- 98 - DirectX 9 Shader Model 3 on Xbox 360 (
only) !FGD