Occlusion Culling

Occlusion culling (OC) or visible surface determination (VSD) is the process of determining which parts of the scene are not visible because although they are inside the view volume, the are occluded from view by other opaque objects, closer to the viewer. Objects that are occluded can be culled from rendering.

This problems is traditionally solved by a HSR techniques such as z-buffer, but the need to examine every polygon maked these techniques inefficient. We will look at some techniques which can remove large numbers of occluded objects quickly.

There's a big difference between occlusion culling and z-buffer rejection. Occlusion query rejects polygons at the geometry level, whereas buffer occurs at the rasterization level. Plus, culling geometry through occlusion query requires more control from the application.

Potentially Visible Sets are used to accelerate the rendering of 3D environments. This is a form of occlusion culling, whereby a candidate set of potentially visible polygons are pre-computed, then indexed at run-time in order to quickly obtain an estimate of the visible geometry.

In order to make this association, the camera view-space (the set of points from which the camera can render an image) is typically subdivided into (usually convex) regions and a PVS is computed for each region.

View frustum culling is usually applied to the visible set for a given location .

Cell-Portals

The Cell-portal system is one of the major PVS calculation techniques.

Portals are used to cull objects which cannot possibly be seen from a viewpoint due to nearby walls. Portals are primarily used for interior environments.

A portal is a polygon through which another 'space' is visible (door, corridor, window, tear in space-time continum).

The model database devided into occluders (walls, floors & cielings) and detal objects (everything else). The occluders are used to divide the world into convex 'cells'. This is a spatial subdivision. Portals are constructed where neigbouring cells which are joined by a transparent boundary.

from Seth Tellers PhD thesis on Cell-Portal visibility
Creating cells & portals

The detail objects for each cell are then enumerated.

The problem is the reduced to that of determining visibility of objects in the room and objects in adjoining room (and objects in rooms adjoining the adjoining rooms, ...).

Generally, visibility between rooms will be limited, since the occluders will obsure space in adjioning cells. A generalised observer is an abstract observer, free to move anywhere in a cell and look in any direction. A generalised observer may see into a neighbouring cell only through a portal, and into a more distant cell through a portal sequence. These sequences significantly limit the observers visibility.

Static phase

A cell is visibile from another cell if there exisits a sightline between the two cells which does not intersect an occluder. Using sightlines, a cell to cell visibility set can be generated. And a cell to object visibility list generated. This information is described as static, since it does not depend on time or exact position of viewer.

from Seth Tellers PhD thesis on Cell-Portal visibility
Cells & object visibility

Visibility computation is considered to have two stages, gross and fineculling.

These two satges are heirarchical, if an observer cannot see into one cell, then he cannot see object in the cell.

Dynamic phase

In the dynamic phase, the exact position and field of view of the observer is known.

This phase has 3 stages;

  1. point location is the determination of the cell enclosing observer's position. (use path coherence)
  2. On-line culling is the retrival of the visibility data for the current cell and selection from this superset, a smaller set of objects based on exact position and field of view
  3. rendering, dispatch of visible object to the graphics hardware

On-line culling

Dynamic culling can also be coarse or fine grained. A coarse cull computes the set of cells visible to the actual (not genralised) observer.

A fine grained cull computes the visible sub regions in each of the visible cells. Finally, an eye-to-object cull identifies those objects inside the visible regions.

Eye-to-region visibility

A portal sequence is used to sucessively chip away at a portion of the view volume to produce a pyramidal, eye centred region. This region is intersected with the reaced cell to produce a visible region

Cells & object visibility

Performance analysis of Cell-Portal techniques