Search Unity

Why isn't Occlusion Culling Automatic?

Discussion in 'General Graphics' started by jh2, Nov 30, 2020.

  1. jh2

    jh2

    Joined:
    Feb 21, 2018
    Posts:
    87
    From what I understand to make occlusion culling work in a scene you have to bake the data by going to Windows > Rendering > Occlusion and then clicking on the bake button in the Occlusion window.

    According to the documentation, "Occlusion culling is a process which prevents Unity from performing rendering calculations for GameObjects that are completely hidden from view (occluded) by other GameObjects."

    I understand Frustum Culling happens automatically.

    Why isn't Occlusion Culling happening automatically? Say, for instance, why wouldn't it be applied to the final result when building/exporting a scene or a game? Why isn't that the default? Maybe there is a situation where you'd not want it to occur at all, but wouldn't that be a rare situation?

    It doesn't make any sense to me why Occlusion Culling would not also be the default or somehow automatically applied to each and every scene.

    Is there something about Occlusion Culling I don't understand that makes it not useful enough to make it the default?
     
    Last edited: Nov 30, 2020
  2. Stardog

    Stardog

    Joined:
    Jun 28, 2010
    Posts:
    1,913
    There is a cost to running it.
     
    jh2 likes this.
  3. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,343
    More specifically, there is a relatively high cost to running it, it requires some amount of manual setup to work well, and it requires an additional baking step. Lots of times the cost of just rendering everything may actually be faster than the cost of occlusion culling. For many games, basic LOD systems are far more effective. And for anything that's 2D or smaller "single room" kind of applications, occlusion culling can be completely ineffective so a lot of people would be unknowingly paying that high extra cost for zero benefit.
     
    jh2 likes this.