1 / 18

Hierarchical Data Structures for Efficient Rendering and Navigation

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

Télécharger la présentation

Hierarchical Data Structures for Efficient Rendering and Navigation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hierarchical Data Structures for Efficient Rendering and Navigation Gordon Müller Computer Graphics TU Braunschweig

  2. Overview • Framework for Efficient Rendering Techniques • Object Hierarchies for Visibility Culling / Rendering / Radiosity / Raytracing / ... • Automatic Hierarchy Creation • System Architecture • Navigation • Conclusions

  3. Visibility Culling • Design goals • conservative culling • dynamic scenes • real 3D • memory efficient • fast pre-processing occluded culled

  4. 5 6 1 3 7 7 4 2 8 6 8 5 3 4 1 2 Visibility Culling using Object Hierarchies • Given any object hierarchy, perform conservative visibility test at inner scene nodes when traversing the graph based on bboxes

  5. 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!

  6. 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

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

  8. 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!

  9. Demo • Frankfurt • molecules

  10. 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...

  11. 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

  12. Object Hierarchy Results • Tight hierarchical bounding volumes • Automatic separation of distant objects • Run-time efficient • Automatic detection of homogeneous geometric detail (detects object clusters)

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

  14. Dynamic Hierarchy Adaption static optimize thread optimized graph potentially dynamic update thread optimized graph dynamic buffer list list

  15. Navigation • Based on ray casting functionality

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

More Related