hierarchical data structures for efficient rendering and navigation

18
G. Müller, Dagstuhl Semi nar 00251, 19/06/2000 1 ComputerGraphics, TU Braunschweig Hierarchical Data Structures for Efficient Rendering and Navigation Gordon Müller Computer Graphics TU Braunschweig

Upload: evangelina-zaro

Post on 02-Jan-2016

54 views

Category:

Documents


3 download

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 Presentation

TRANSCRIPT

Page 1: Hierarchical Data Structures for Efficient Rendering and Navigation

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

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

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

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

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

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

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

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

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

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

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

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

G. Müller, Dagstuhl Seminar 00251, 19/06/2000

13ComputerGraphics, TU Braunschweig

Page 14: Hierarchical Data Structures for Efficient Rendering and Navigation

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

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

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

G. Müller, Dagstuhl Seminar 00251, 19/06/2000

17ComputerGraphics, TU Braunschweig

Page 18: Hierarchical Data Structures for Efficient Rendering and Navigation

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, ...)