1 / 20

Guided Visibility Sampling

Guided Visibility Sampling. Presented by P. Wonka, M. Wimmer, K. Zhou, S. Maierhofer, G. Hesina, and A. Reshetov at SIGGRAPH 2006. Visibility Algorithms. Main Idea: Identify all objects that are potentially visible from a set of view regions. Uses: Occlusion Culling Shadow Generation

vea
Download Presentation

Guided Visibility Sampling

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. Guided Visibility Sampling Presented by P. Wonka, M. Wimmer, K. Zhou, S. Maierhofer, G. Hesina, and A. Reshetov at SIGGRAPH 2006

  2. Visibility Algorithms Main Idea: Identify all objects that are potentially visible from a set of view regions. Uses: • Occlusion Culling • Shadow Generation • Inside/outside classification • Image based rendering • Motion planning and navigation

  3. Prior Ideas - Traditional • Spatial SubdivisionAlgorithms(Warnocks, BSP, KDTree, Octrees, Grids), subdivide space so that it can be efficiently traversed and rendered with less overdraw. • Clipping Algorithms(Frustum culling) – Throw away all geometry outside viewing region. • Z-Buffer – Simple distance test (post-process).

  4. Prior Ideas - Modern • Cells and Portals – Divide space into self-contained rooms and portals connecting them. Compute potential visible set (PVS) for each portal. • Occlusion Algorithms (Occlusion culling, Occlusion Maps) – Identify all important occluders and regions of space that they occlude. • Visibility Sampling – Stochastically sample visibility using ray casting until PVS settles down and ceases to change for a long period of time.

  5. Simple Portal Example Room 3 Room 1 Point B Stabbing Line Portals Occluder Visibility Line Room 2 Point A Cells Point C

  6. Game Example “Prey” on Xbox 360

  7. Guided Visibility Sampling Goal: Speedup traditional “Visibility Sampling.” Main Ideas of Paper (Explained later): • Adaptive Border Sampling • Reverse Sampling • Avoiding using a complex data structure

  8. Traditional Visibility Sampling • Sample all points on view region <x,y>, 2D (or <x,y,z> = 3D). • Sample all directions from each point, IE Hemisphere (lat, long), 2D. • Total 2D x 2D = 4D (or 5D) space to sample. • Obviously too slow to brute force. Object Space Sample Ray Hit Point Start Point View Region

  9. Visibility Sampling Algorithm • Do • Create Sample Ray • Pick random start point on view region • Pick random direction on hemisphere • Shoot ray into environment via ray casting • Did Ray hit object? • Is object not in PVS? • Add Object to PVS. • Change “update time” to “curr time” • Keep Searching? • If “update time” >= MAX_SEARCH_TIME, done = TRUE • While (not done) • Return PVS.

  10. Traditional Visibility Sampling 2D Conceptual Example Object Space Object Space Ray Space 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Efficiency Issue: The same surface is sampled over and over and over again.

  11. Guided Visibility Motivation 2D Conceptual Example Object Space Object Space Ray Space 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Orthogonal Sampling Guided Sampling

  12. Adaptive Border Sampling • Locality: If we find an new visible object, it’s neighbors are likely to be visible as well. • Extend border of newly found triangle slightly • To avoid sampling original triangle redundantly. • To avoid numerical accuracy issues • Don’t extend too far (or we might miss neighbors). • Create new probing rays around extended border of new triangle to search for neighbor objects (triangles). • New ray start point = original start point • New ray direction = new border point – original start point • Recursively subdivide edges as necessary • IE if 2 new probe rays defining edge hit different triangles

  13. Adaptive Border Concepts Find new visible triangle Extended border Extend border, Generate new Probing rays Objects Original Ray Border points define new rays View Cell Handling Edges 2 probe rays on edge hit different triangles Recursively Subdivide edge

  14. Reverse Sampling • Heuristic to help explore void space • Deterministic mutations of probing rays to find undiscovered regions of object space. • If a discontinuity is found, then algorithm generates a mutated probing ray. • What is a discontinuity? • Predict distance to predicted hit point in VS • Compute actual distance from ray casting • If |pred. dist – act. Dist.| < ∆ then discontinuity. • Creating Mutated Ray • Re-use original probing ray direction. • Stochastically Generate new starting point within small region around original ray’s starting point.

  15. Reverse Sampling Concepts Predicted Hitpoint Mutated Probing Ray Actual Hitpoint View Cell View Cell Find a Discontinuity Generate Mutated Sampling Ray

  16. Termination Criteria • Fixed • Max # sample rays • Max computation time • Adaptive • # of new triangles found / 1M rays < 50 • # triangles found / 5 seconds < 50 • Hybrid (Fixed + Adaptive) • Stop when (#new triangles per 1M rays) < 50 • Or when 10M total rays have been shot

  17. Simple Data Structures • Previous Visibility algorithms • Put severe restrictions on scenes (2.5d scenes, only indoors, only architectural, only large occluders, etc.) • Use complex data structures (occlusion lists, occlusion maps, etc. • Hard to implement robustly • Guided Visibility uses simple data structures • Objects (list of triangles) • Rays (for probing object space)

  18. Results GVS = Guided Visibility RAND = Random Sampling EXACT = Bittner’s exact algo. NIR = Nirenstein & Blake algo** ** = Hardware accelerated CUBES CANYON CITY PPLANT

  19. Conclusions Guided Visibility is conservative, fast, and accurate. • Conservative in building visibility set (never underestimates) • Comparable to previous algorithms • Final accuracy dependent on termination criteria • Performance win due to intelligent selection of probing rays using ABS & RS. • ABS helps find new visible objects fast (principle of locality) • RS helps find and explore void space. • Order of magnitude increase in speed over previous approaches ** • Accuracy remains comparable to previous algorithms • Note: all algorithms are subject to numerical robustness problems. • Uses no complex data structures • Simpler to implement robustly, can be applied to wider variety of scenes ** NIR algorithm is hardware accelerated, GVS is software approach, so 2 approaches are not directly comparable.

  20. Wrap-up • “Thank You” for listening ! • Any Questions … ?

More Related