Title: Culling for Time Critical Rendering of Complex Virtual Environments
1Culling for Time Critical Rendering of Complex
Virtual Environments
- Ph.D. Dissertation
- Heo, JunHyeok
- CSDept. KAIST
2Contents
- Introduction
- Problem Definition Framework
- Contributions
- Previous Work
- Preprocessing Part
- Realtime-processing Part
- Experiments
- Conclusions Future Work
3Introduction
- VR requires PerformanceBryson94
- Display
- Fast display update (frame rate)
- At least 10 frames/second
- Interactivity
- Fast response to user
- At most 0.1 seconds
- How to achieve the display requirement ?
4navigation path
A
B
D
C
Complex urban environment
5Typical views at position B
Typical view at position A
Typical views at position C
Typical view at position D
6Introduction (cont.)
- Solutions for the display performance
- Geometry based
- Scene culling
- Level of detail
- Image based
- Using prerendered and stored images
7Definition of Scene Culling
- Remove potentially invisible polygons from a
given viewpoint - Need not to calculate the exact visible portions
of polygons but just a superset of visible
polygons - Conservative visibility
- Should be executed in time-critical fashion
- Preprocessing static parts of scene
8Framework of Scene Culling
- Preprocessing part of scene culling
- Subdivide the viewpoint space into
sub-spaces(cells) - Precalculating the potentially visible polygons
or PVS(Potentially Visible Set) for each cell and
save the results to a lookup table T - Realtime-processing part of scene culling
- Find the cell where the viewpoint currently
reside. - Fetch the potentially visible polygons for the
cell from T - If the number of polygons is too large to achieve
the target frame rate then further remove
potentially invisible polygons for the viewpoint.
9Contributions
- Propose an preprocessing method that is
effectively applicable to outdoor scenes like
city scenes - Propose an real-time processing method that
regulates the frame rate by exploiting temporal
coherence in visibility
10Previous Work
- Preprocessing part
- Aspect graph
- Plantinga90Gigus91 - O(n9logn)
- Shadow calculation
- Approximation Campbell91Chin92
- Exact boundary Drettakis94Stewart94 -
O(n6logn) - Interactive navigation
- Architectural indoor scenes
- - Stochastic ray-casting Airley90, Gotsman99
- - Portal stabbing Teller92,93 O(p3)
- Cave
- - Corridor test Yagel96
- Outdoor urban scenes
- - Strong single occluder Cohen98
11a polygonal occluder
a polygonal light
umbra
?
umbra
a polygonal occluder
Simply merged umbra
occludee
occludee
occluder
occluder
cell
occludee
occluder
cell
Cohens single strong occluder
12Previous Work (cont.)
- Real-time processing part
- View frustum culling
- Object -Rubin80Kay86
- Space Glassner84Fujimura85
- 5D space - Arvo87 Kwon98
- Interactive navigation - Falby93Garlick90
- Occlusion culling
- Hierarchical z-buffer Greene93
- Hierarchical polygon tiling Greene96
- HOM(Hierarchical Occlusion Map) Zhang97
- Shadow Volume Hudson97
- Linear critical surface Coorg97
13Preprocessing Part
- Subdivision of the viewpoint space into subspaces
or cells - Visibility preprocessing for each surrounding
rectangles around a cell - Area visibility problem
144D Information of Area Visibility
x
Y
y
W
image plane
w
a sight line l l w h x y T ? ? x
yT where ?w/W and ? h/H
H
h
Z
-Z
View-rectangle
cell
X
Preprocessing Part
15Overview
- Express the 4D visibility information on 2D
spaces and keep it with a ternary tree like BSP
tree. - Apparent motion of axis-parallel bounding or
bounded box of ghost polygons on image plane - Test the visibility of each polygon with the
constructed tree.
Preprocessing Part
16Apparent Motion
Preprocessing Part
17Ghost Polygon
the back-ghost polygon of B
an area light S
umbra
a polygon B
a plane L
back-ghost polygon as occluder
the front-ghost polygon of B
an area light S
antiumbra
umbra
a polygon B
a plane L
front-ghost polygon as occludee
Preprocessing Part
18Ghost Polygon(cont.)
- Theorem
- Time to calculate a ghost polygon
- equivalent to umbra shadow volume
- O(nm) Cambell91 and O(nm) Yoo96
p1
an area light
p
p2
Preprocessing Part
19Axis-parallel Box on Image Plane
projected ghost polygons
bounding rectangle
bounded rectangle
image plane
y
y
x
1
1
x2
y2
y2
y1
x1
y1
1
x
?
?
x1
x2
x1
x2
0
0
1
y2
x2
y2
y1
x1
y1
-1
-1
Projection on ? y T
Projection on ? xT
Apparent motion
Preprocessing Part
20TSP(Ternary Space Partitioning)Tree
x
y
1
1
ys2
xs2
top
top
ys1
?
?
xs1
in
0
0
1
1
ys3
in
R1
xs3
bottom
R1
bottom
-1
-1
partitioning ? yT space for xs1
partitioning ? xT space
x-node-subtree
y-node-subtree
in
in
ys1
xs1
R1
R1
x-node
top
top
ys2
xs2
bottom
bottom
ys3
y-node
xs3
TSP tree
Preprocessing Part
21TSP Tree (cont.)
partitioning ? xT space
partitioning ? yT space for xs1, xs2, xs3, xs4,
and xs5
Preprocessing Part
22TSP Tree(cont.)
in
in
in
ys1
R2
R1
xs1
R1
top
top
xs2
ys2
bottom
xs3
bottom
in
ys3
R2
top
in
R2
xs4
top
null
top
in
ys1
R1
xs5
bottom
ys4
bottom
top
ys2
null
bottom
ys3
bottom
in
xs6
R2
in
ys1
R1
top
null
top
ys2
bottom
xs7
x-node-subtree
bottom
ys3
in
ys1
R2
top
ys2
bottom
ys3
in
ys1
R2
top
ys2
bottom
ys3
y-node-subtrees
Preprocessing Part
23Summary
Phase 2
Phase 1
Remove back face polygons
Compute the back-ghost polygon of each polygon
Compute the front-ghost polygon of each polygon
Sort back ghost polygons (front-to-back)
Sort the front ghost polygons (front-to-back)
Compute two parallelograms for each back ghost
polygon on ? x T and ? yT space
Compute two parallelograms for each front ghost
polygon on ? x T and ? yT space
Build the TSP tree
The TSP tree
A super set of visible polygons
Test the visibility of front-ghost polygons
Preprocessing Part
24Algorithm Complexity
- Time ?(nlog3m) O(nm)
- Memory O(nm)
Preprocessing Part
25Covering All Directions
- Only translation of viewpoint on view-rectangle
- Perspective projection
Preprocessing Part
26projection on XY plane
a sightline out of frontal directions
projection on XZ plane
Preprocessing Part
27Additional View-rectangle
projection on YZ plane
projection on XZ plane
Preprocessing Part
28Removing Invalid Sightlines
- Valid range x,1 for a given ? on ? xT space
- Valid area for a given ? on ? xT space
- Case 1 -1,y
- Case 2 -1,1
- Case 3 y,1
29Preprocessing Part
30Realtime Processing Part
- Temporal coherence in visibility
Visible polygons from v1 U Visible polygons for
v2 p1, p2 U p2, p3 p1, p2 , p3
Realtime-processing Part
31Estimation of errors in images
- Real error bound
- Maximum error in generated images between v1 and
v2. - Estimation of error bound
- Temporal coherence in visibility
- Covered area by newly visible polygons
Realtime-processing Part
32Proposed algorithm
if the current viewpoint on the predicted path
then return the visible polygons for v1 and
v2. else set v1 to the current
viewpoint. predict the position v2 after n
frames from v1. calculated the visible polygons
for v1 and v2 . if the temporal coherence is
smaller than the threshold then set the
predicted path to NULL. return the visible
polygons for v1.
Realtime-processing Part
33Proposed algorithm (cont.)
- Incrementally calculate the visible polygons for
the next view v2 in advance when the direction
of movement is constant. - Regulating the frame rate to the target frame
rate f by selecting the suitable ni (the
prediction interval)
time to calculate visible polygons
saved time
Realtime-processing Part
34Proposed algorithm(cont.)
- Efficiently calculating visible polygons and the
temporal coherence in visibility by using the
hardware z-buffer as the item buffer
Realtime-processing Part
35Experiments
- Implemented in C on SGI Octane R10000 CPU with
128M - ???? model
- 198,457 polygons
- 5.725km x 5.618km
- Building size
- Average - 55.9m2
- Standard deviation 164.9m2
36(No Transcript)
37Visibility Preprocessing
a cell given for experiments with a base area of
8955m2
the magnified area near by the cell
388955m2 99.4 - Proposed method 42.8 - Single
occluder method
39(No Transcript)
40Realtime culling algorithm
- 700 frames along predefined path
41- View frustum culling only
- 2.3fps
- 10fps target frame rate and 99 coherence
threshold - 7.7fps
- 0.11 (4.5 frames)
42- 20fps target frame rate and 99 coherence
threshold - 6.7fps lower than in case of 10fps
- 0.12 (10.6 frames)
43- Preprocessing the potentially visible polygons
for cell0 and cell1
Cell0 58688 polygons (29.6) 374sec. Cell1
29156 polygons (14.7) 370sec.
Cell1
Cell0
44- 20fps target frame rate and 1 error threshold
- 17.6fps
- 0.11 (3.6 frames)
45Conclusions
- Propose an preprocessing method that is
effectively applicable to outdoor scenes like
city scenes - Consider the invisible polygons occluded
collaboratively by multiple occluders - Propose an real-time processing method that
regulates the frame rate by exploiting temporal
coherence in visibility - Tradeoff between performance and image quality
46Future Work
- Preprocessing method
- Calculating a backghost polygon for a group of
connected small polygons - Effective management of PVSs for the entire scene
- Using coherence in PVSs of adjacent cells