Func occluder



It hides models which are completely obscured by the brush. Sides of a  that are textured with nodraw will not be factored into occlusion calculations. See Max occludee area and Min occluder area in.

Poor occluder usage is worse for performance than not having any! Check if your occluders are actually helpful by using  in the console to switch them between their on/off states.

The issue comes down to two things: how long it takes to trace lines to each model on-screen to check for line-of-sight (increases as more models are added, not affected by the complexity of said models), and how long it would take to render the occluded models (increases with model complexity and somewhat for each individual model, regardless of complexity). The line-tracing part of this has to be done with high precision and granularity to avoid de-rendering things that are actually visible. Occluders start to hurt performance when the cost of checking each model for line-of-sight outweighs the benefit of not rendering the model.

Areaportals on the other hand experience less overhead because they use a much less precise culling method. What these two have in common is the fact that they're used in scenarios where is impractical or impossible. Another way in which occluders are inverse from areaportals is how their size correlates to their effectiveness. Large occluders are better than small ones because they cover a larger portion of the screen and can occlude more objects.