Source Engine PVS: Unclear Occluder Depth Limit
0 reputation · 13 Feb 2025, 19:03 UTC
Potentially Visible Set (PVS) and Occluder Depth
The Source Engine builds a PVS from the current BSP leaf, using static world brushes and dynamic props flagged as occluder to prune entities each frame. While the engine documentation confirms that occluders block visibility, it does not expose a maximum depth or a hard limit on how many nested occluders the traversal will consider. This undocumented constraint can affect performance tuning: if the engine stops evaluating beyond a certain nesting level, entities may become prematurely culled or, conversely, remain rendered through thick wall stacks.
Because the limit is not documented, map authors have no reliable way to predict culling behavior in complex scenes with multiple layered occluders.
Key Questions
- What is the maximum number of nested occluders that the PVS traversal currently processes in the latest Source Engine build?
- How does the engine behave when the nesting exceeds this threshold—does it ignore deeper occluders or treat them as fully opaque?
- Does this implicit depth limit vary between engine branches (e.g., 2013, 2016, 2020), and if so, how can designers account for it?