Title: Occlusion Culling
1Occlusion Culling
2Indoor scenes
3Viewing position change
4Visibility culling
- Goal
- To bring the cost of rendering a large scene down
to the complexity of the visible portion of the
scene. - Visible set
- Conservative visibility
- We may classify an occluded object as visible but
may never classify a visible object as occluded. - PVS potentially visible set
- Hierarchical scene
5Visibility culling techniques
- View frustum culling
- Back-face culling
- Occlusion culling
6Taxonomy of occlusion culling techniques
- Point vs. Region
- Image precision vs. Object precision
- Cell-and-portal vs. Generic scenes
7Additional criteria
- Conservative vs. approximate
- All vs. subset of occludes
- Individual vs. fused occluders
- Need of precomputation
- Treatment of dynamic scenes
8Aspect graph in 2D
- Principle
- Subdivide
- Visibility space partition (VSP)
- Visual event
- The boundary of a VSP region
- End points
- Supporting lines
- Separating lines
9Many Aspect region
10Cell-and-portal from-region visibility
- Based on the characteristics of architectural
scenes ? cells and portals - Key concepts
- Conservative visibility
- PVS
- Densely occluded environments
11Important Points
- Subdivided into convex cells
- Adjacency graph
- View volume
- Dynamically culling ? view volume of the
observer, producing a superset of the visible
scene data.
12A cell is visible
- It is in the View Volume
- All cells along stab tree are in the view volume
- Sightline within the view volume exists through
portals
13Cells and portals adjacency graph and stab tree
14Point-based object-precision method
- Point-based Cells and Portals technique based on
from-region methods Luebke and Georges - No pre-computing for each cell
- Simple and effective
- Rendering the initial cell and its portals
- Any remaining visible geometry has lie inside the
projection of those portals
15Cells and Portals
16Large convex occluders
- Using of temporal coherence by taking a subset
of visual events - Separating and Supporting planes
- The basic idea ? aspect graph
- Linearized portion of the aspect graph ( as the
user moves) - The silhouette edges and vertices of the relevant
primitives
Coorg and Teller
17Large convex occluders (Improved)
- View-dependent set of occluders
- Object hierarchy
- Visibility test
- Pre-selected convex occluders
- Bounding boxes of the hierarchy
- Edges of the occluder vertices of the occludee
18Culling using shadow frusta
- Concept
- A viewer cannot see the occludee if it is inside
the shadow . - Dynamically choosing a set of occluders
- ? Producing shadow frusta
- ? Culling the bounding boxes a hierarchy of
objects - Scene Test top-down
Hudson et al.
19Point-based image-precision techniques
- Key concept
- Subsequent objects can be culled away quickly by
the already-filled parts of the images - Finite resolution
- More robust than object-precision
- Numerical precision problems
20Point-based image-precision algorithm
- Hierarchical Z-buffer
- Hierarchical occlusion map
- Ray casting
- Approximate volumetric visibility
- Directional discretized occluders
- Occluder shadow footprints
21Ray casting
- The simplest forms
- Never rendering an occluded part of the scene
- High complexity
22Directional discretized occluders
- Both HZB and HOM
- DDOs simple concept
- Replace complex occluder with simpler object
23Approximate volumetric visibility
- Using volumetric representation
- Density of geometry in the environment ? (
probabilistic value ) - The volume opacity between regions (related to
density)
24Occluder shadow footprints
- 2.5D scene ( terrain or height field )
- Using z-buffer
- Wedges ( delimit the occluder shadow )
- Footprint
- An object is Hidden
25Shadow Footprint ???
26Generic from-region visibility
- Region or view cell
- Sampling view points
- Unacceptable flicking artifacts
- Needing Effective occluder
- Occluder fusion
27Umbra Virtual occluder
28Conservative visibility preprocessing using
extended projections
- An extension of image-precision methods
- Using Projection
- Extended projection
- Allowing occluder-fusion
Durand et al.
29Visible or Occluded
30Virtual occluders
- View-dependent convex object
- Represent the aggregate occlusion for a given
cell - Applying an Effective from-region culling
technique - To Efficiently compute a PVS
Koltun et al.
31Virtual occluders
32Occluder fusion for urban walkthroughs
- Observation
- It is possible to compute a conservative
approximation of the umbra from a set of discrete
point samples placed on the view cells boundary. - Shrinking an occluder by ?
Wonka et al.
335 sample points in view cell
34Occlusion Culling Algorithms
- Select from the whole scene that we want to
render, and the selection is limited to those
portions of the scene that re not considered to
contribute to the final image. - The z-buffer selects and renders only those
objects which are visible
35Occlusion culling is useful
36General occlusion culling
- 1 OcclusionCullingAlgorithm (G) 2
ORempty3 for each object g in G4
  if(isOccluded(g,OR))5     Skip(g)6
  else7     Render(g)8     Update(OR,g)9
  end - 10 end
37Occlusion Culling for Outdoor
- Outdoor environments
- Closed-in locations
38Bounding Volumes
- A simple geometrical object roughly representing
the volume of a real objects geometry - The most suitable geometric objects for bounding
volumes are spheres and boxes - ( The goal of using a combination of both is
speed ) - Node Volumes
39Bounding box and bounding sphere
40The View Frustum
41View Occluders
42Occluder
43Visibility in Difference Bounding
44Hierarchy Tree Example Octree
45Hierarchy Tree Example Octree
46Hierarchical Z-Buffer
- Replace Z-buffer with a Z-pyramid
- Lowest level full-resolution Z-buffer
- Higher levels derive from lower level
47Hierarchical Z-Buffer
- A Z-pyramid represents depth buffer in
hierarchical fashion - Depth at each pixel at a given level represents
the max of the depth of the four corresponding
pixels at next level - Z-pyramid constructs until the farthest one
derived
48Hierarchical Z-buffer
49Hierarchical Z-Buffer
- Organize scene into an octree
- Before rendering the polygons associated with a
node in the octree, test if the nodes bounding
box is visible - Recursion
50Hierarchical Z-Buffer
1 ProcessOctreeNode(OctreeNode N)2
if(isOccluded(NBV, ZP)) then return3 for each
primitive p in N4 Â Â tileInto(p, ZP)5 end6
for each child node C in N in front-to-back
order7 Â Â ProcessOctreeNode(C)8 end
51Hierarchical Occlusion Maps
- Two major differences from HZB
- Separates occluders from occludees
- Divide occlusion test into two part
- an depth test and a overlap test
52Hierarchical Occlusion Maps
Depth
Overlap
53Hierarchical Occlusion Maps
- Representation of projection for overlap test
occlusion map - Generate by rendering occluders
54Occlusion Maps
Occlusion Map
Rendered Image
55(No Transcript)
56END