1 / 37

Objekt-Hierarchien für effiziente Rendering - Algorithmen

Objekt-Hierarchien für effiziente Rendering - Algorithmen. Interdisziplinäre Forschungsgespräche TU Braunschweig Gordon Müller. Überblick. Die Rendering-Pipeline Beschleunigungstechniken Objekt-Hierarchien Culling-Algorithmen Konstruktion Anwendungen Viewer-Architektur Zusammenfassung.

avery
Download Presentation

Objekt-Hierarchien für effiziente Rendering - Algorithmen

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. Objekt-Hierarchienfür effizienteRendering-Algorithmen Interdisziplinäre Forschungsgespräche TU Braunschweig Gordon Müller

  2. Überblick • Die Rendering-Pipeline • Beschleunigungstechniken • Objekt-Hierarchien • Culling-Algorithmen • Konstruktion • Anwendungen • Viewer-Architektur • Zusammenfassung

  3. Rasterisierung Geometrie Anwendung Die Rendering-Pipeline „A chain is no stronger than its weakest link“

  4. Die Anwendungs-Stufe • Vollständige Kontrolle durch Anwendungsprogrammierer • Generierung der Rendering-Primitive: Punkte, Linien, Dreiecke, ... • Performance: Beschleunigung durch • Reduktion der Zahl generierter Primitive • schnellere Generierung der Primitive Software

  5. Lightning Projection Clipping Screen Mapping Die Geometrie-Stufe • Ausführung pro Polygon bzw. pro Vertex • Mehrere funktionale Stufen • Performance: Ca. 100 float Opera-tionen pro Vertex / 1 Lichtquelle Model& View Transform Hardware

  6. Die Rasterisierungs-Stufe • Ausführung pro Pixel • Färbung der Pixel in Abhängigkeit transformierter Vertizes, Farben, Texturkoordinaten, ... • Texturierung • Sichtbarkeitsbestimmung durch z-buffering • Performance: limitiert durchSpeicherbandbreite Hardware

  7. Beschleunigungstechniken 1 • Attrappen

  8. Beschleunigungstechniken 2 • LOD (level of detail)

  9. V3 I2 V5 V2 I7 V1 V4 V3 I0 T3 T1 T1 T2 T1 I6 T3 T4 T0 T0 T3 I1 I3 T0 V0 T2 T5 T2 V5 V1 T6 V4 V2 I5 I4 V0 Beschleunigungstechniken 3 • Optimierte Datenstrukturen triangle strip triangle fan mesh

  10. occluded culled frustum Beschleunigungstechniken 4 • Culling = „select from the flock“ • Backface Culling • View frustum Culling • Occlusion Culling • Portal Culling / PVS • Detail Culling

  11. 5 6 1 3 7 7 4 2 8 6 8 5 3 4 1 2 View-Frustum-Culling mit Objekthierarchien • Beim Traversieren einer Objekt-Hierarchie wird in jedem inneren Szenenknoten ein Sichtbarkeitstest unter Verwendung von Hüllkörpern durchgeführt.

  12. Occlusion Algorithmus OcclusionCulling (G): OR = empty for each object gG if not (isOccluded(g, OR)) Render(g) Update(OR, g) end end

  13. 1 0 6 • 0 3 1 2 • 9 1 2 • 9 1 2 2 7 6 9 2 max max 9 Hierarchischer Z-Buffer Reduktion der Anzahl der Pro-Pixel-Operationen

  14. HierarchischesOcclusion-Culling 1 HOcclusionCulling (N) if not (isOccluded(NBV, OR)) for each primitive pN Render(p) Update(OR, p) end for each child node CN HOcclusionCulling (C) endOR = empty end HOcclusionCulling(root)

  15. HierarchischesOcclusion-Culling 2 HOcclusionCulling (N) if not (isOccluded(NBV, OR)) for each primitive pN Render(p) Update(OR, p) end for each child node CN in front-to-back order HOcclusionCulling (C) endOR = empty end HOcclusionCulling(root)

  16. HierarchischesOcclusion-Culling 3 HOcclusionCulling (N) if not (isOccluded(NBV, OR)) for each primitive pN Render(p) Update(OR, p) end for each child node CN in front-to-back order HOcclusionCulling (C) endOR = sampled end HOcclusionCulling(root)

  17. Elimination unnötiger Tests • „Problemfall“ isOccluded() == false  CPU/Graphik-Resourcen verschwendet • Idee: Ausnutzung zeitlicher Kohärenz • Implementation: Dynamische Aktivierung/De-aktivierung innerer Knoten der Hierarchie für Occlusion-Tests

  18. Aktivierungsstrategie

  19. Demo

  20. Hierarchie-Konstruktion • Motivation: • Optimierte Objekthierarchien sind notwendig für effizientes räumliches Retrieval • 3D-Modelle sind oftmals unstrukturiert • Evtl. vorhandene Hierarchien sind typischerweise suboptimal für konkrete Rendering-Algorithmen • Idee: • Automatische Hierarchiegewinnung

  21. B 2 B 1 B Hierarchie-Konstruktion 2 • Innere Kosten eines Strahlschnitts mit einer Hüllkörperhierarchie:

  22. Hierarchie-Konstruktion 3 • Approximation durch Greedy-Optimierung • Sortiere die Objekte entlang der Koordinatenachsen • Minimiere vereinfachte (lokale) Kostenfunktion • Divide and conquer

  23. Hierarchie-Konstruktion 4 • Keine feste Unterteilungsposition, nicht notwendig balancierte Bäume! • Automatische Hierarchiegewinnung • Enganliegende Hüllkörper, Trennung entfernter Objekte • Geringer Konstruktionsaufwand: O(n logn)

  24. Hierarchie-Konstruktion 5

  25. Anwendungen für Objekthierarchien • Culling • Raytracing • Radiosity • Navigation

  26. Raytracing • Konstruktion einer Objekt-Hierarchie • Identifikation uniformer Regionen durch Klassifikation von Sub-Szenen • Lokale Raumunterteilung uniformer Regionen

  27. 512x512 512x512 512x512 Raytracing Ergebnisse

  28. local transfer direction R e c e i v e r clusteredtransfer S o u r c e Radiosity mit Clustering Benutze die selbe Datenstruktur für Sichtbarkeitstest und den Energietransfer

  29. Radiosity Ergebnisse

  30. Navigation • Basierend auf Ray Casting Funktionalität

  31. 3D Viewer • Integration effizienter Rendering-Algorithmen in ein erweiterbares Visualisierungssystem • Effiziente Interaktion / Navigation • Berücksichtigung dynamischer Geometrie • Stereo-Projektion • Paralleles Rendering (multi-threaded + network)

  32. Objekt-Interface • Methoden • void render(view, coherency&) • box boundingBox() • bool intersect(ray, intersection&) • float costs(cost_type); • Input • VRML97 (subset)

  33. static optimize thread optimized graph potentially dynamic update thread optimized graph dynamic buffer list list Dynamische Hierarchie-Adaption

  34. Zusammenfassung • Effiziente Algorithmen zur Hierarchie-gewinnung für grosse 3D-Modelle • Optimierte Sichtbarkeitsalgorithmen • Ausnutzung zeitlicher Kohärenz • Erweiterbares multi-threaded Framework

  35. Ausblick • Volumenbasierte Kollisionserkennung • Optimierte Algorithmen für Spezialfälle • Molekül-Visualisierung • Stadtvisualisierung (2½D Geometrie) • Integration neuer Objekttypen (z.B. Subdivision Surfaces)

  36. Vielen Dank für Ihre Aufmerksamkeit Fragen?

More Related