Visibility Culling - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Visibility Culling

Description:

When scene has high depth complexity ... Reduces scene depth complexity, decreasing ... For many scenes, visibility culling is a simple way to get huge speedups ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 34
Provided by: davidl8
Category:

less

Transcript and Presenter's Notes

Title: Visibility Culling


1
Visibility Culling
David Luebke Computer Science Department Universit
y of Virginia ltluebke_at_cs.virginia.edugt
2
Recap General Occlusion Culling
  • When cells and portals dont work
  • Trees in a forest
  • A crowded train station
  • Need general occlusion culling algorithms
  • Aggregate occlusion
  • Dynamic scenes
  • Non-polygonal scenes

3
RecapGeneral Occlusion Culling
  • Ill discuss two algorithms
  • Hierarchical Z-Buffer
  • Ned Greene, SIGGRAPH 93
  • Hierarchical Occlusion Maps
  • Hansong Zhang, SIGGRAPH 97

4
Recap Hierarchical Z-Buffer
  • Replace Z-buffer with a Z-pyramid
  • Lowest level full-resolution Z-buffer
  • Higher levels each pixel represents the maximum
    depth of the four pixels underneath it
  • Basic idea hierarchical rasterization of the
    polygon, with early termination where polygon is
    occluded

5
Hierarchical Z-Buffer
  • Idea test polygon against highest level first
  • If polygon is further than distance recorded in
    pixel, stopits occluded
  • If polygon is closer, recursively check against
    next lower level
  • If polygon is visible at lowest level, set new
    distance value and propagate up

6
Hierarchical Z-Buffer
  • Z-pyramid exploits image-space coherence
  • Polygon occluded in a pixel is probably occluded
    in nearby pixels
  • HZB also exploits object-space coherence
  • Polygons near an occluded polygon are probably
    occluded

7
Hierarchical Z-Buffer
  • Exploiting object-space coherence
  • Subdivide scene with an octree
  • All geometry in an octree node is contained by a
    cube
  • Before rendering the contents of a node, render
    the faces of its cube (i.e., query the Z-pyramid)
  • If cube faces are occluded, ignore the entire node

8
Hierarchical Z-Buffer
  • HZB can exploit temporal coherence
  • Most polygons affecting the Z-buffer last frame
    will affect Z-buffer this frame
  • HZB also operates at max efficiency when
    Z-pyramid already built
  • So start each frame by rendering octree nodes
    visible last frame

9
Hierarchical Z-BufferDiscussion
  • HZB needs hardware support to be really
    competitive
  • To date, hardware vendors havent bought in
  • Z-pyramid (and hierarchies in general) unfriendly
    to hardware
  • Unpredictable Z-query times generate bubbles in
    rendering pipe
  • But there is a promising trend

10
Hierarchical Z-Buffer
  • Hardware beginning to support Z-query operation
  • Allows systems to exploit
  • Object-space coherence (bounding boxes)
  • Temporal coherence (last-rendered list)
  • Systems Im aware of
  • HP Visualize-fx graphics
  • SGI Visual Workstation products
  • An aside applies to cell-portal culling!

11
Hierarchical Occlusion Maps
  • A more hardware-friendly general occlusion
    culling algorithm
  • Two major differences from HZB
  • Separates occluders from occludees
  • Decouples occlusion test into an depth test and a
    overlap test

12
HierarchicalOcclusion Maps
  • Occluders versus occludees

Blue parts occluders Red parts occludees
13
Hierarchical Occlusion Maps
  • Depth versus overlap

Depth Overlap
Occlusion
14
Hierarchical Occlusion Maps
  • Representation of projection for overlap test
    occlusion map
  • Corresponds to a screen subdivision
  • Records average opacity per partition
  • Generate by rendering occluders
  • Record pixel opacities (i.e., coverage)

15
Occlusion Maps
Rendered Image
Occlusion Map
16
Occlusion Map Pyramid
64 x 64
32 x 32
16 x 16
17
Occlusion Map Pyramid
18
Occlusion Map Pyramid
  • Analyzing cumulative projection
  • A hierarchical occlusion map (HOM)
  • Generate by recursive averaging (once per frame)
  • Records average opacities for blocks of multiple
    pixels, representing occlusion at multiple
    resolutions
  • Construction can be accelerated by texture
    hardware

19
Overlap Tests
  • Query is projection of occludee inside
    cumulative projection of occluders?
  • Cumulative projection occlusion pyramid
  • Ocludee projection expensive in general
  • Overestimate ocludee with 3-D bounding box
  • Overestimate projection of 3-D bounding box with
    2-D bounding rectangle in screen-space

20
Overlap Tests
  • Hierarchical structure enables some
    optimizations
  • Predictive rejection
  • Terminate test when it must fail later
  • Conservative rejection
  • The transparency threshold
  • Aggressive Approximate Culling
  • Ignore objects barely visible through holes
  • The opacity threshold

21
Aggressive Approximate Culling
22
Hierarchical Occlusion Maps
  • Not discussed here
  • Depth test
  • Depth estimation buffer
  • Modified Z-buffer
  • Selecting occluders
  • For more details, see attached excerpt from
    Hansong Zhangs dissertation

23
HOM Discussion
  • Provides a robust, general, hardware-friendly
    occlusion culling algorithm
  • Supports dynamic scenes
  • Supports non-polygonal geometry
  • Not many hardware assumptions

24
HOM Discussion
  • Efficient coding, careful tuning a must
  • Fairly high per-frame overhead
  • Needs high depth complexity, good occluder
    selection to be worthwhile
  • UNCs MMR system

25
Visibility Culling Discussion
  • When is visibility culling worthwhile?
  • When scene has high depth complexity
  • Examples architectural walkthroughs, complex CAD
    assemblies, dense forest
  • Non-examples terrain, single highly-tesselated
    object (e.g., a radiositized room)

26
Visibility CullingDiscussion
  • How does visibility culling compare to
  • Level-of-detail
  • Reduces geometry processing
  • Helps transform-bound apps
  • Visibility culling
  • Reduces geometry and pixel processing
  • Helps transform- and fill rate-bound apps
  • Texture / Image representations
  • Reduces geometry and pixel processing
  • Incurs texture/image processing costs

27
Visibility Culling Discussion
  • How does visibility culling interact with level
    of detail?
  • Fairly seamless integration generally a win
  • One issue visibility of simplified model may
    differ from original model requires some care
  • LODs can speed up occluder selection and rendering

28
Visibility Culling Discussion
  • How does visibility culling interact with texture
    and image-based representations?
  • Texture/image reps generally replace far-field
    geometry
  • Involves an implicit occlusion culling step
  • Reduces scene depth complexity, decreasing the
    utility of visibility culling
  • If near-field geometry still includes complex
    heavily-occlusive assemblies, still a win

29
Visibility CullingDiscussion
  • How much culling effort is appropriate?
  • Cells and portals relatively cheap, with large
    potential speedups
  • Hierarchical occlusion maps relatively costly,
    carefully weigh potential gains
  • Multiple processors allow much more aggressive
    culling calculation
  • Pipelining culling calculations, Performer-style,
    allows cull time render time
  • Tradeoff one frame increased latency

30
Summary
  • The basic, very powerful idea
  • Rapidly compute a potentially visible set
  • Let hardware handle the rest
  • For many scenes, visibility culling is a simple
    way to get huge speedups
  • View-frustum culling always a must
  • For scenes with high depth complexity, occlusion
    culling can be a big win

31
Summary
  • Architectural models visibility is practically a
    solved problem
  • Cells and portals work well
  • Cull-box portal culling simple, fast
  • Line-stabbing elegant, powerful

32
Summary
  • Occlusion culling of general models still a
    largely open problem
  • Important issues
  • Dynamic scenes
  • Aggregate occlusion effects

33
Summary
  • General occlusion culling algorithms
  • Hierarchical Z-buffer
  • A simple, truly elegant algorithm
  • But doesnt seem amenable to hardware
  • Hierarchical occlusion maps
  • More complicated, difficult to code tune
  • Better suited to current hardware
  • Lends itself well to aggressive culling
  • Fairly high overhead, only worthwhile with high
    depth complexity
  • Promising trend in hardware
Write a Comment
User Comments (0)
About PowerShow.com