Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung René Lützner Dresden, 22.05.2013
Motivation Computer Simulationen von dynamischen Molekulardaten Eigenschaften und Verhalten von großen Molekülmengen untersuchen Beschleunigung von Molekulardatendarstellungen Visualisierung der Molekülbewegungen und Interaktionen in Echtzeit Visualisierung von Anziehungskräften zwischen Molekülen Beeinflussen maßgeblich die Bewegung der Moleküle Verhalten der gesamten Molekülmenge besser nachvollziehbar 22.05.2013 2
Zielstellung 1. in OptiX bereits vorhanden Beschleunigungsstrukturen hinsichtlich ihrer Eignung untersuchen Strukturierung und Gruppierung der Molekülemenge um die Effizienz der Beschleunigungsstrukturen zu verbessern Animation dieser inklusive Schatten, Reflexionen und Refraktion 2. Verformung der Moleküle durch Höhenfeld mit Displacement Mapping Verwaltung der Höhenfelder mit einem Texture-Atlas 22.05.2013 3
Zielstellung 1. 2. 22.05.2013 4
OptiX Framework Benutzerdefinierte GPU Programme Just in time Compiler Ray Tracing Kernel Szenen- Darstellung 22.05.2013 5
OptiX Ray Tracing Pipeline Launch Traverse Shade rtcontextlaunch Ray Generation Program rttrace Traverse 22.05.2013 6
OptiX Ray Tracing Pipeline Launch Traverse Shade Node Graph Traversal Acceleration Traversal Intersection Program Shade 22.05.2013 7
OptiX Ray Tracing Pipeline Launch Traverse Shade Miss Program Closest Hit Program Any Hit Program rttrace Traverse 22.05.2013 8
OptiX Geometrie Graph Strukturierung GeometryGroup -Instance 22.05.2013 9
OptiX Geometrie Graph Strukturierung GeometryGroup Geometry-Instance Geometry 22.05.2013 10
OptiX Geometrie Graph Strukturierung GeometryGroup Acceleration Geometry-Instance Geometry 22.05.2013 11
OptiX Geometrie Graph Strukturierung GeometryGroup Acceleration Geometry-Instance Geometry-Instance Geometry-Instance Geometry Geometry Geometry 22.05.2013 12
OptiX Geometrie Graph Strukturierung Group Acceleration GeometryGroup GeometryGroup GeometryGroup Acceleration Acceleration Acceleration Geometry- Instance Geometry Geometry- Instance Geometry Geometry- Instance Geometry 22.05.2013 13
Beschleunigungsstrukturen OptiX Builder NoAccel BVH Median BVH Triangle KD-Tree LBVH SBVH Traverser NoAccel BVH BVH KD-Tree BVH BVH 22.05.2013 14
LBVH Morton Kurve Sortierte Morton Codes Resultierende Binärbaum 22.05.2013 15
SBVH Kombination aus Objekt- und Raum-Unterteilung Bessere Unterteilung als beim BVH aber auch kostengünstigere Erstellung als KD-Baum Adaption der Kindknotengröße bei Split in allen Dimensionen BVH SBVH 22.05.2013 16
Beschleunigungsstrukturen Gruppierung von Molekülen durch Cluster Hierarchie Statt einzelner Primitiven, strukturierte Gruppierungen Vorberechnet auf der CPU Beschleunigte Erstellung der zusätzlich verwendeten OptiX Struktur Single Instance 22.05.2013 17
Cluster Hierarchie Aufbau Cluster Hierarchie 22.05.2013 18
Ellipsoid Bounding Volume 1 2 3 4 Grobe Abschätzung des Volumens im Koordinatensystem der Eigenvektoren Auswahl der Ecke des molekülumschließenden Würfels der am weitesten vom Ursprung weg ist Die entsprechenden Maxima der Dimensionsbeträge des Eckpunktes werden als initiale Maße genutzt Transformation der Eckpunkte in ein Koordinatensystem, wo das Ellipsoid einer Kugel entspricht und auf Inklusion testen 22.05.2013 19
Statische Szene Animation Vergleich Beschleunigungsstrukturen 5000 10000 20000 40000 75000 160000 300000 22.05.2013 20
Zielstellung 1. in OptiX bereits vorhanden Beschleunigungsstrukturen hinsichtlich ihrer Eignung untersuchen Strukturierung und Gruppierung der Molekülemenge um die Effizienz der Beschleunigungsstrukturen zu verbessern Animation dieser inklusive Schatten, Reflexionen und Refraktion 2. Verformung der Moleküle durch Höhenfeld mit Displacement Mapping Verwaltung der Höhenfelder mit einem Texture-Atlas 22.05.2013 21
Verformung der Kugeln Durch Höhenfeld definierte Verformung Texture Mapping Sphere Mapping Octahedron Mapping Höhenfeld Erzeugung Displacement Mapping 22.05.2013 22
Texture Mapping: Sphere Map Lookup: Transformation in Kugelkoordinaten Textur Erstellung: Transformation von Kugelkoordinaten auf Einheitskugel in Weltkoordinaten 22.05.2013 23
Texture Mapping: Octahedron Map Oktanten werden in rechteckiger Textur gespeichert Jeweils untere und obere Pyramidenhälfte 22.05.2013 24
Höhenfeld Erzeugung Transformation von Texturkoordinaten auf Einheitskugel Abstände zu allen Kraftvektoren ermitteln Funktionswert von Gaußfunktion bestimmen und aufsummieren Gaußfunktion: Höhenwert: 22.05.2013 25
Displacement Mapping Untersuchte Verfahren Iteratives Parallax Mapping Cone Mapping Relief Mapping Weitere Verfahren Adaptive Tessellierung Parallax Mapping Sphere Tracing View-Dependent Displacement Mapping 22.05.2013 26
Iteratives Parallax Mapping Leicht modifizierte Variante für Displacement auf der Kugel Iterativer Erweiterung des Parallax Mapping 22.05.2013 27
Cone Mapping Nutzt vorberechnete Kegel aus 2D-Texture Sichere und vergleichsweise schnelle Iteration So gut wie keine Algorithmen Parameter nötig 22.05.2013 28
Relief Mapping Kombination aus Linearer und Binärer Suche Nutzt Vorteile beider Varianten um deren Nachteile zu kompensieren 22.05.2013 29
Silhouette Bisher vorgestellten Algorithmen nur für planare Oberflächen geeignet Abstandsberechnung zur Kugel im Raum nutzen um Strahlen zu ermitteln die sich wieder entfernen 22.05.2013 30
Octahedron Sphere Validierung Verformungen Iter. Parallax Cone Relief Cone (Blickpunkt in der xz-ebene) (Blickpunkt auf der y-achse) 22.05.2013 31
Octahedron Sphere Texture Mapping Vergleich 12x12 24x24 48x48 96x96 8x16 16x32 32x64 64x128 22.05.2013 32
Animation Statische Szene Performance 12x12 / 8x16 24x24 / 16x32 Szene I 12x12 / 8x16 24x24 / 16x32 Szene II Szene III 22.05.2013 33
Fazit Beschleunigungsstrukturen hybride Einbindung der Cluster und Vorberechnung auf der CPU führte in bestimmten Fällen für große Datensätze zu einer beschleunigten Darstellung vielversprechendere Vorberechnung der Struktur von der Wurzel aus durch Beschränkungen von OptiX nicht möglich Displacement Mapping Anpassung der Displacement Mapping Verfahren für Kugeloberflächen Verwaltung von hunderten bis tausenden der benötigten Höhenfelder mit Atlas Realistischere Oberflächen durch Selbstbeschattung, -Reflexion und -Refraktion Darstellung und Animation Animation untersuchten Datensätzen mit mehreren 100000 Molekülen bei einem reinen Phong Shading noch in Echtzeit möglich der volle Umfang der Darstellungsmöglichkeiten bleibt auf kleinere Datensätze beschränkt 22.05.2013 34
Ausblick Trotz Optimierungen ist die Cluster Erstellung noch verbesserungswürdig Pool, der auch Objekte bzw. Arrays unterschiedlicher Größe verwalten kann Beschleunigung der Animation Im Vornherein alle Beschleunigungsstrukturen erstellen und abspeichern durch Occlusion Culling Verfahren [NV] doch eingeschränkter Nutzten bei wenigen Überdeckungen später während des Renderings kann auf diese zugriffen werden Beschleunigte Erstellung der Cone Map Reduzierung der Berechnungskosten für die Höhenfeld-Erstellung Generierung der Map auf der GPU Hierarchische Erstellung der Map [CC09] Werte der Gaus Funktion in einer Tabelle vorberechnen, um somit die teure Exponentialfunktion einzusparen 22.05.2013 35
Ende Vielen Dank für Ihre Aufmerksamkeit! Fragen? 22.05.2013 36