Title: VisibilityDriven View Cell Construction
1Visibility-Driven View Cell Construction
- Oliver Mattausch, Jirí Bittner,
- Michael Wimmer
Institute of Computer Graphics and
Algorithms Vienna University of Technology
2Motivation
BSP Teller 92
Our method
Render Time
Low
High
3Introduction
- Visibility preprocessing
- Partition view space into view cells
- Compute PVS for each view cell
- Runtime
- Locate the view cell
- Render PVS
- View cell construction got little attention
- But as important as PVS computation
4Our Goal
- Create good view cells for general 3D scenes
- What are good view cells?
- Fast rendering
- Low memory consumption
5Example 1
Render Time
Low
High
6Example 2
On the groundA few buildings visible
Above the roofsMany buildings visible
gt Should belong to separate view cells
7Previous Work
- Cells and Portals
- KD tree Airey90
- BSP tree Teller92
- Breaking the walls Lerner03
- Watershed Haumont03
- Implicit construction (during visibility
computation) - Adaptive sampling Nirenstein03
- Visibility Octree Saona-Vázquez99
- 5D sampling Gotsman99
8View Cell Construction
- Main idea minimize expected rendering time
c expected rendering time (cost to minimize)
S set of view cells
p probability of view point inside a view
cell (volume of view cell)
r render time estimate Wimmer03
9View Cell Construction
- Three steps
- Visibility sampling
- View space subdivision
- View space merging
?
?
1.
2.
3.
10View Cell Construction
- Three steps
- Visibility sampling
- View space subdivision
- View space merging
?
?
1.
2.
3.
11Visibility Sampling
- Fast stochastic sampling
- Casts rays from potential viewpoints towards
scene objects - Coarse estimate of visibility (1M samples)
View space scene bounding box
View space distant region
12Visibility Sampling
- Compute maximal free segments
- Optionally detect empty view space
Viewpoint inside the wall
Visibility samples
Invalid
Valid
Valid
13View Cell Construction
- Three steps
- Visibility sampling
- View space subdivision
- View space merging
?
?
1.
2.
3.
14View Space Subdivision
- Binary Space Partitioning (BSP)
- Geometry-aligned splits
- Axis-aligned splits
- Greedy optimization select next best split
- 2 stage method
- Compute locally best split within each leaf
- Take globally best split (priority queue)
15Splitting Plane Selection
- Minimize render cost
- PVS computed from visibility samples
16Splitting Plane Selection Example
Best plane
C(Left) 6 5
C(Left) 18 7
C(Left) 26 8
C(Left) 28 8
C(Left) 2 4
C(Left) 14 5
C(Right) 28 8
C(Right) 24 7
C(Right) 12 5
C(Right) 4 4
C(Right) 2 2
C(Right) 16 5
C(Left Right) 186
C(Left Right) 224
C(Left Right) 228
C(Left Right) 232
C(Left Right) 178
C(Left Right) 160
17View Space Subdivision Properties
- Subdivision is progressive
- Intuitive global termination criteria
- Memory limit
- Minimal render cost decrease
18View Space Subdivision
- Result Set of elementary cells
5000 view cells
19View Cell Construction
- Three steps
- Visibility sampling
- View space subdivision
- View space merging
?
?
1.
2.
3.
20View Space Merging
- Bottom-up refinement of the subdivision
- Merge view cells while minimizing the render cost
increase - Merge candidates neighboring pairs of view cell
5000 view cells
200 view cells
21View Space Merging
- View cell hierarchy Merge history tree
- Scalable view cells
- Extracting optimal set of view cells
22Results Render Cost
- Building (5 floors, 8000 objects)
BSP Teller92, KD-VT Nirenstein04,
KD-cycling-axis Subdivision our method (only
subdivision) Merge our method (subdivision
merge)
Render cost evaluation using 8M samples
23Results Render Cost
- Vienna (11000 objects, 1M polygons)
BSP Teller92, KD-VT Nirenstein04,
KD-cycling-axis Subdivision our method (only
subdivision) Merge our method (subdivision
merge)
Render cost evaluation (using 10M samples)
24Results Render Cost Histogram
- Vienna (11000 objects, 8M polygons)
25Results Timings
- Timings (using unoptimized implementation)
- 1.5 M samples
- 50000 view cells
- 3.4 GHZ Pentium 4
26Conclusions
- New method for view cell construction
- Handles all types of scenes
- Main ideas
- Visibility sampling
- Render time minimization
- View cell hierarchy
- Lower render cost
- Better distribution of the render cost
- Scalable view cells
27View Cell Construction
- Thank you for your attention!
28Results Sampling Density
- Influence of sampling density (Building interior)
- Visibility samples 50K, 200K, 1M
Initial subdivision
Final render cost evaluation (using 8M samples)
Conclusion Coarse sampling is sufficient!
29View Space Subdivision
- Problem with greedy optimization
- Can run into local minimum using pure render cost
decrease - Solution also take render cost of node into
account
Cut through a scene The leaves of the
subdivision are shown in random color No render
cost decrease for upper hierarchy levels gt one
half of the view space (shown in green) is not
subdivided
30Results Merge Step
- Another application for the merge stepMake
depth-first approach progressive
31Results Geometry-Aligned Splits
- Influence of geometry-aligned split
planes(Rotated floor of building interior)