Visibility Culling using Hierarchical Occlusion Maps - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Visibility Culling using Hierarchical Occlusion Maps

Description:

Visibility Culling using Hierarchical Occlusion Maps ... Create hierarchical occlusion maps (HOM) Render objects ... Construction of the Occlusion Map Hierarchy ... – PowerPoint PPT presentation

Number of Views:153
Avg rating:3.0/5.0
Slides: 27
Provided by: csee3
Category:

less

Transcript and Presenter's Notes

Title: Visibility Culling using Hierarchical Occlusion Maps


1
Visibility Culling using Hierarchical Occlusion
Maps
  • Hansong Zhang, Dinesh Manocha, Tom Hudson,
    Kenneth E. Hoff III
  • Presented by
  • Chris Wassenius

2
Outline
  • Introduction
  • Related Work
  • Method
  • Results
  • Conclusion / Future work

3
Introduction
  • GPU power has increased year after year
  • So has the size of models...
  • Need acceleration algorithms
  • Visibility culling
  • Level of detail
  • texturing

4
Introduction
5
Related Work
  • Z-buffer
  • BSP (Binary Space Partitioning) Trees
  • creation is time consuming
  • not dynamic
  • PVS (potentially visible set)
  • works well for specific models
  • doesn't work so well with arbitrary models

6
Related Work
  • Object space algorithms (Coorg and Teller, and
    Hudson et al. 1996)
  • convex objects only
  • can't combine occluders
  • Hierarchical Z-buffer algorithm
  • Octree and Z-pyramid
  • good, but expensive

7
Method
  • Features
  • Generality
  • No restriction on types of occluders
  • Occluder Fusion
  • combines a forest of small and/or disjoint
    occluders
  • Significant Culling

8
Method
  • Features (continued)
  • Portability
  • Efficiency
  • algorithm only takes a few milliseconds per frame
  • significant speedup in interactive walkthroughs
    of models
  • Approximate Visibility Culling
  • able to cull small visible holes in occluders

9
Method
  • Basic Idea
  • Select objects of the model as occluders
  • Create hierarchical occlusion maps (HOM)
  • Render objects in the model based on
  • overlap test with HOM
  • depth test

10
Method
  • Construction of the Occlusion Map Hierarchy
  • Selects occluders from the occluder database
    (preprocessing step)
  • traverses the bounding volume hierarchy of the
    occluder database
  • selects subset, utilizes temporal coherence
  • Occluders are rendered in pure white
  • Builds hierarchy by averaging pixels

11
Method
  • Occlusion Map
  • object is projected to screen, area of projection
    is made opaque
  • each pixel records opacity of a rectangular block
    in screen space
  • opacity the ratio of the sum of the opaque areas
    in the block to the total area in the block

12
Method
  • Occlusion Map Hierarchy
  • Recursively average 2 x 2 blocks of pixels
  • case use GPU and CPU
  • special case of bilinear interpolation
  • Stop at some minimal resolution (e.g. 4 x 4)

13
Method
  • Overlap Test (to see if an object is occluded)
  • Check opacity of the pixels it overlaps in the
    HOM
  • Exact overlap test is too expensive
  • Use screen spaced bounding rectangle for
    projection

14
Method
  • Overlap test (continued)
  • uses HOM to accelerate test
  • Begins at the level of the hierarchy where the
    size of a pixel is close to the size of the
    bounding rectangle
  • Examines each pixel that overlaps rectangle
  • If each pixel is completely opaque, object is
    overlapped by occluders
  • Else recursively descends to higher resolution
    level
  • If all pixels in rectangle are opaque then object
    is overlapped by occluders
  • Else algorithm renders object

15
Method
  • High level opacity estimation
  • If low resolution map pixel has a low opacity
    level, descendants most likely have low opacity
    levels
  • If low resolution map pixel has a high opacity
    level, descendants most likely have high opacity
    levels.

16
Method
  • Opacity Threshold
  • Value at which a pixel is considered completely
    opaque
  • Different threshold for each level in hierarchy
  • In effect, specifies the size of allowable holes

17
Method
  • Approximate Visibility Culling


18
Method
  • Depth Test vs. Overlap Test

19
Method
  • Depth Estimation Buffer
  • partition screen space and use separate Z-plane
    for each region
  • estimate depth and position of occluders by
    projected bounding box
  • take furthest z-value of projected rectangle for
    each occluder
  • for each partition, set distance to the furthest
    occluder

20
Method
  • Depth Test (for a potential occluded objection)
  • Again, use projected rectangle as aproximation
  • Check each partition of the depth estimation
    buffer that is covered by the rectangle
  • if any partition is greater than (further than)
    rectangle's depth
  • object is rendered
  • otherwise,
  • object is not rendered

21
Method
  • Occluder selection to form Occluder Database
    (preprocessing step)
  • Size
  • small objects typically don't serve as good
    occluders
  • Redundancy
  • Complexity

22
Method
  • Dynamic Selection of occluders at run-time
  • Selects based on distance from view point, size,
    and temporal coherence
  • limits the amount of selected occluders (can vary
    per frame)

23
Results
24
Results
  • 635,252 polygons
  • 82.7 culled

25
Conclusion and Future Work
  • Pros
  • Good visibility culling algorithm for large
    models with large depths
  • Works well with arbitrary models
  • Cons
  • Fairly large overhead

26
Conclusion and Future Work
  • Integrate LOD
  • Occlusion preserving simplification
Write a Comment
User Comments (0)
About PowerShow.com