hierarchical data structures for efficient rendering and navigation
DESCRIPTION
Hierarchical Data Structures for Efficient Rendering and Navigation. Gordon Müller Computer Graphics TU Braunschweig. Overview. Framework for Efficient Rendering Techniques Object Hierarchies for Visibility Culling / Rendering / Radiosity / Raytracing / ... Automatic Hierarchy Creation - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/1.jpg)
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
![Page 2: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/2.jpg)
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
![Page 3: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/3.jpg)
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
![Page 4: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/4.jpg)
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
![Page 5: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/5.jpg)
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!
![Page 6: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/6.jpg)
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
![Page 7: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/7.jpg)
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
![Page 8: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/8.jpg)
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!
![Page 9: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/9.jpg)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
9ComputerGraphics, TU Braunschweig
Demo
• Frankfurt• molecules
![Page 10: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/10.jpg)
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...
![Page 11: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/11.jpg)
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
,
![Page 12: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/12.jpg)
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)
![Page 13: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/13.jpg)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
13ComputerGraphics, TU Braunschweig
![Page 14: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/14.jpg)
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)
![Page 15: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/15.jpg)
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
![Page 16: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/16.jpg)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
16ComputerGraphics, TU Braunschweig
Navigation
• Based on ray casting functionality
![Page 17: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/17.jpg)
G. Müller, Dagstuhl Seminar 00251, 19/06/2000
17ComputerGraphics, TU Braunschweig
![Page 18: Hierarchical Data Structures for Efficient Rendering and Navigation](https://reader030.vdocuments.mx/reader030/viewer/2022032414/56813352550346895d9a6159/html5/thumbnails/18.jpg)
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, ...)