Guided Visibility Sampling Peter Wonka, Michael Wimmer, Kaichi Zhou, Stefan Maierhofer, Gerd Hesina, Alexander Reshetov
Problem Statement Input: Triangulated Model, Region Output: Triangles visible from input region Input: Triangulated Model, Region Output: Triangles visible from input region Input Region Model Visible Invisible
Practical Application Preprocessing Stage Locate all possible viewing cells For each cell, compute potentially visible set Rendering Stage Identify current viewing cell Only render visible set of triangles Preprocessing Stage Locate all possible viewing cells For each cell, compute potentially visible set Rendering Stage Identify current viewing cell Only render visible set of triangles
Impetus for Sampling Pros Quick Simple No overestimation Progressive Cons Incorrect when undersampling Pros Quick Simple No overestimation Progressive Cons Incorrect when undersampling
Naïve Sampling Camera Plane Object Plane n x n x = n4n4
Guided Visibility Sampling: Can they beat random? Guided Visibility Sampling Guided Visibility Sampling Uniform Random Sampling Uniform Random Sampling ErrorsOver- sampling
Guided Visibility Sampling Algorithm Step 1: Pick Random Rays Camera Plane Object Plane
Guided Visibility Sampling Algorithm Step 1: Pick Random Rays Camera Plane Object Plane
Guided Visibility Sampling Algorithm Step 1: Pick Random Rays Camera Plane Object Plane Step 2: Place all “hit” triangles in a queue
Guided Visibility Sampling Algorithm Adaptive Border Sampling “Guide” rays that hit new triangles perturb endpoint to locate neighbor triangles Repeat for all new triangles discovered this way Adaptive Border Sampling “Guide” rays that hit new triangles perturb endpoint to locate neighbor triangles Repeat for all new triangles discovered this way
Guided Visibility Sampling Algorithm Reverse Sampling “Explore” triangles that are not adjacent perturb ray start point to fill gaps in Repeat for all new triangles discovered this way Reverse Sampling “Explore” triangles that are not adjacent perturb ray start point to fill gaps in Repeat for all new triangles discovered this way Front View Top View
Adaptive Border Sampling Subdivision
Adaptive Border Sampling Enlarging Triangles Grow Triangle: numerical problems Sollution: Ennaegon 9-sided Computed in Ray Space to benefit edge-on triangles Enlarging Triangles Grow Triangle: numerical problems Sollution: Ennaegon 9-sided Computed in Ray Space to benefit edge-on triangles
Adaptive Border Sampling Compute Ennaegon in ray space to deal with edge-on triangles Top View: Compute Ennaegon in ray space to deal with edge-on triangles Top View:
System Overview ray hits old triangle ray hits old triangle New triangle New triangle No more triangles recursive gap detect gap detect reversed ray within view cell
Results
Conclusions Sampling vs Exact/Conservative Contributions “Large” models No restriction on input scene Few image errors Problems Ray tracing w/o locality Ray tracing precision No error bounds Sampling vs Exact/Conservative Contributions “Large” models No restriction on input scene Few image errors Problems Ray tracing w/o locality Ray tracing precision No error bounds
Notes “Large” models are tiny In core algorithm Deals poorly with T-junctions Too many “tweakables” Max vs Ave error Could result in temporal aliasing? “Large” models are tiny In core algorithm Deals poorly with T-junctions Too many “tweakables” Max vs Ave error Could result in temporal aliasing?