Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | evangelina-zaro |
View: | 50 times |
Download: | 3 times |
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
1ComputerGraphics, TU Braunschweig
Hierarchical Data Structures for Efficient Rendering and
Navigation
Gordon Müller
Computer Graphics
TU Braunschweig
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
2ComputerGraphics, TU Braunschweig
Overview
• Framework for Efficient Rendering Techniques
• Object Hierarchies for Visibility Culling / Rendering / Radiosity / Raytracing / ...
• Automatic Hierarchy Creation• System Architecture• Navigation• Conclusions
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
3ComputerGraphics, TU Braunschweig
Visibility Culling
• Design goals• conservative culling• dynamic scenes• real 3D• memory efficient• fast pre-processing
occluded
culled
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
4ComputerGraphics, TU Braunschweig
Visibility Culling using Object Hierarchies
• Given any object hierarchy, perform conservative visibility test at inner scene nodes when traversing the graph based on bboxes
1
2
3
4
56
78
7
5 3 46 1 2 8
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
5ComputerGraphics, TU Braunschweig
Culling
• Conservative view-frustum test (inside, outside, partially)
• Conservative occlusion test (occluded, partially visible)
• Occlusion test: hierarchical occlusion maps, OpenGL extensions, ...
• Occluder selection: ray casting samples• Traversal order: OpenGL select mode• Avoid unnecessary tests!
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
6ComputerGraphics, TU Braunschweig
Culling Test (De-)Activation
• Disable culling test on failure (i.e. bbox visible)
• Enable culling test by using an oracle• 2-pass algorithm for every frame
I. if (node.activated)visibility test;if (visible(node)) node.activated =
false;recurse(node.childs);
II. Oracle activates nodes
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
7ComputerGraphics, TU Braunschweig
Activation Oracle
• Currently• Re-activation after inode frames• Global activation temperature based on activation
success
• Work in progress• Frame rate analysis• Optimizations for static and/or particular (ie 2½ D)
environments
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
8ComputerGraphics, TU Braunschweig
Visibility Culling Results
• Performance gain in framerate: 5-50% compared to naive culling at every scene node
• Elimination of ~75% of unsuccessful tests• Method adapts well to different scene types• Slightly higher frame rate variance• Good object hierarchies are essential for
efficient culling performance!
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
9ComputerGraphics, TU Braunschweig
Demo
• Frankfurt• molecules
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
10ComputerGraphics, TU Braunschweig
Bounding Volume Optimization I• Recursively subdivide the set of objects into
two disjoint sub-scenes• Objects are sorted along coordinate axes• No fixed subdivision position...
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
11ComputerGraphics, TU Braunschweig
Bounding Volume Optimization II
• …instead, we minimize a cost function describing the approximate traversal costs
• Greedy optimization• Object-specific costs• O(n logn) total construction time on average
C B C B p B B C BH ii
n
i i
1
,
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
12ComputerGraphics, TU Braunschweig
Object Hierarchy Results
• Tight hierarchical bounding volumes• Automatic separation of distant objects• Run-time efficient• Automatic detection of homogeneous
geometric detail (detects object clusters)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
13ComputerGraphics, TU Braunschweig
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
14ComputerGraphics, TU Braunschweig
Objects
• Methods• void render(view*=NULL, coherency*=NULL)• box boundingBox() const• bool intersect(const ray&, intersection&)• float costs(cost_type);
• Implemented• VRML97 input
• Work in progress• subdivision surfaces (view-dependent tesselation)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
15ComputerGraphics, TU Braunschweig
Dynamic Hierarchy Adaption
static
potentially dynamic
dynamic
optimized graph
optimized graph
list
buffer
optimize thread
update thread
list
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
16ComputerGraphics, TU Braunschweig
Navigation
• Based on ray casting functionality
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
17ComputerGraphics, TU Braunschweig
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
18ComputerGraphics, TU Braunschweig
Conclusions
• Multi-threaded culling framework on static and dynamic environments (optimize, cull, render, update, navigate, intersect, ...)
• Interactive exploration of large models based on optimized scene hierarchies
• Easy to extend (culling, objects, ...)