1 / 51

Object-Space Visibility Culling

Object-Space Visibility Culling. Anthony Steed University College London Based upon material presented by Claudio T. Silva at Eurographics 1999 Slides, and material for slides, have been provided by Satyan Coorg (MIT/IBM), Sigal Dahan and Dudu Sayag (Tel-Aviv).

varick
Télécharger la présentation

Object-Space Visibility Culling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Space Visibility Culling Anthony Steed University College London Based upon material presented by Claudio T. Silva at Eurographics 1999 Slides, and material for slides, have been provided by Satyan Coorg (MIT/IBM), Sigal Dahan and Dudu Sayag (Tel-Aviv)

  2. Approximate Visibility Determination Develop algorithms that are output sensitive, that is, complexity depends on the number of visible polygons, not the total number of polygons. Drop the exact visibility requirement, and instead attempt to develop algorithms that estimate the triangles which have visible fragments In this talk, we will speak about algorithms that overestimate the visible fragments, the so called conservative visibility algorithms

  3. Talk Summary • Cells and portals • Teller and Sequin, Siggraph 91 • Luebke and Georges, I3D 95 • Visibility culling with large occluders • Coorg and Teller, SoCG 96 and I3D 97 • Hudson et al, SoCG 97

  4. Talk Summary • Cells and portals • Teller and Sequin, Siggraph 91 • Luebke and Georges, I3D 95 • Visibility culling with large occluders • Coorg and Teller, SoCG 96 and I3D 97 • Hudson et al, SoCG 97

  5. The Cells-and-Portals Approach (1) Decompose space into convex cells (2) For each cell, identify its boundary edges into two sets: opaque or portal (3) Precompute visibility among cells (4) During viewing (eg, walkthrough phase), use the precomputed potentially visible polygon set (PVS) of each cell to speed-up rendering

  6. Space Subdivision Input Scene: Convex subdivision: Generated by computing a k-d tree of the input faces

  7. Determining Adjacent Information

  8. Find_Visible_Cells(cell C, portal sequence P, visible cell set V) V=V  C for each neighbor N of C for each portal p connecting C and N orient p from C to N P’ = P concatenate p if Stabbing_Line(P’) exists then Find_Visible_Cells (N, P’, V) Computing the PVS of a cell S•L  0,  L L S•R  0,  R R Linear programming problem:

  9. Eye-to-Cell Visibility The eye-to-cell visibility of any observer is a subset of the cell-to-cell visibility for the cell containing the observer

  10. Eye-to-Cell Visibility • A cell is visible if • cell is in VV • all cells along stab tree are in VV • all portals along stab tree are in VV • sightline within VV exists through portals

  11. Results

  12. Results

  13. Results

  14. Results

  15. Talk Summary • Cells and portals • Teller and Sequin, Siggraph 91 • Luebke and Georges, I3D 95 • Visibility culling with large occluders • Coorg and Teller, SoCG 96 and I3D 97 • Hudson et al, SoCG 97

  16. Instead of pre-processing all the PVS calculation, it is possible to use image-space portals to make the computation easier Can be used in a dynamic setting Luebke and Georges, I3D 95

  17. Luebke and Georges, I3D 95

  18. Luebke and Georges, I3D 95

  19. Talk Summary • Cells and portals • Teller and Sequin, Siggraph 91 • Luebke and Georges, I3D 95 • Visibility culling with large occluders • Coorg and Teller, SoCG 96 and I3D 97 • Hudson et al, SoCG 97

  20. When does A occludes B ?

  21. B A Convex Occluers A occludes B C B A B A B is not occluded

  22. Important Events v e e v B A A B

  23. Naïve Algorithm • For all combinations of edges and vertices find the corresponding plane • (n2) planes • Partition space by these planes • (n6) cells

  24. Relevant Planes • Only a small selection of planes are actually relevant • For complete objects - consider the silhouettes B v e A All silhouette edges produce supporting planes Plane ve separates A and B

  25. For Individual Polygons • Track Visibility Changes • Track all planes defined by E and vertices in edge from B that intersect E

  26. For Individual Polygons • Non-edge cases Track planes • V7,V3,V5 • V7, V5, V6 • V7, V6, V3 • Overall this is (n+m) for an object pair

  27. For N Objects • Reduce complexity from (n2) by using an octree structure

  28. Hierarchical Tests

  29. Hierarchical Tests

  30. Hierarchical Tests

  31. Optimising the Octree Traverse • Not feasible to compute visibility relationship for whole octree each time viewpoint moves • Re-use the idea of tracking the separating planes • Do this for each octree cell on boundary • Note that a cell visibility can only become visible if its parent is partially visible

  32. Dynamic Plane Maintenance • First approach • find a sub-set of close planes and test only those if viewpoint does not move more than r

  33. Dynamic Plane Maintenance • Second approach • keep the planes themselves in an octree • in each octree cell keep a list of intersecting planes • a cell-cell traversal through the octree goes via the LCA, adding and deleting planes • no possibility of repeating an add or delete, so this is strictly better than naïve recomputation with worst case being situations where LCA is root

  34. Coorg and Teller, I3D 97 Added the capability to join the effect of connected occluders, that is, a form of occluder fusion T Ignored A Ignored B

  35. Occluder Fusion

  36. Fast Tangent Plane Computation

  37. Fast Tangent Plane Computation

  38. Fast Tangent Plane Computation Because this computation is fast, it is no longer necessary to keep fine-grain visibility events

  39. Use Temporal Coherence to Cache Relevant Events

  40. Choosing Occluders • Pick large occluders close to the viewpoint • Good for application to octree scene structure • Pick smaller occluder that are close to objects (detail occluders) • I.E. they occlude an object most of the time • Applied only to a specified object, not to the general scene octree

  41. Detail Occluders

  42. Metric for Comparing Occluder Quality Occluder quality: (-A (N * V)) / ||D||2 A : the occluder’s area N : normal V : viewing direction D : the distance between the viewpoint and the occluder center Large polygon have large area-angle.

  43. Results

  44. Results The percentage of polygons draw The culling and drawing times (in milliseconds)

  45. Talk Summary • Cells and portals • Teller and Sequin, Siggraph 91 • Luebke and Georges, I3D 95 • Visibility culling with large occluders • Coorg and Teller, SoCG 96 and I3D 97 • Hudson et al, SoCG 97

  46. Hudson et al, SoCG 97 Occluder A Viewpoint B C

  47. Occluder Storage • Partition model into cells and store good occluders in the cells • Identify likely occluders for a cell • they subtend a large solid-angle (similar to Coorg and Teller) • Test likely occluders • use a sample of viewpoints and compute actual shadow volumes resulting

  48. Occluder Usage • At run-time • form shadow volumes from likely occluders • do view-volume cull and shadow-volume occlusion test in one pass across the spatial sub-division of the scene • each cell of the sub-division is tested for inclusion in view-volume and non-inclusion in each shadow volume

  49. Occluder Test • Overlap test (cell to shadow volume) is performed in 2D • If the subdivision uses bounding boxes, then a very efficient overlap test is presented

  50. Conclusions • Cells and portals • Gives excellent results IF you can find the cells and portals • Good for interior scenes • Identifying cells and portals is often done by hand • General polygons models “leak”

More Related