Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Arnwald Strand Geändert vor über 10 Jahren
1
GPU Simulation and Rendering of Volumetric Effects
for Computer Games and Virtual Environments Jens Krüger, Rüdiger Westermann Seminar „3D Animation und Visualisierung“ Technische Universität Darmstadt SS Andreas Schwarzkopf
2
Inhalt 1. Motivation & Overview 2. Grundlagen 3. GPGPU 4. Contribution
Motivation, Themenüberblick, Begriffe 2. Grundlagen Physik, Grids, Rückkopplung, Einfaches Beispiel 3. GPGPU GPU, SIMD, Grafikpipeline, Shadinglanguages 4. Contribution „Templates“ zur Simulationssteuerung 5. Ergebnisse & Bewertung Leistungsmessungen, Pro & Contra, Bewertung, Ausblick 1
3
1. Motivation & Overview 1. Motivation & Overview 2 1.1 Motivation
1.2 Themenüberblick 1.3 Begriffe 2 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
4
1.1 Motivation Einsatzrahmen der vorgestellten Techniken
Simulation von Fluiden Umfasst Effekte wie Rauch, Gas, Dampf, Wolken, Wasser, Nebel, Feuer, Explosionen, ... Simulation vs. Interaktion Anwendungsgebiet „Need for interactive Framerates“ Spiele, VR „Skalenproblem“, Molekülebene Effekt muss in seiner Gesamtheit erfasst werden 3 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
5
1.2 Themenüberblick Fluid Simulation (2D) Spherical Interpolation
Volume Rendering GPU Based Particle Engine 4 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
6
1.3 Begriffe „Themengebiet“: CFD „Physikalisches Hilfsmittel“: NSE
Computational Fluid Dynamics deutsch: „Numerische Strömungsmechanik“ Konkretes Ziel: Annähernde Lösung der 3D-NSE „Physikalisches Hilfsmittel“: NSE Navier-Stokes-Equations, (bzw. deutsch NSG) beschreiben newtonsches Fluid, mehr dazu gleich... im weiteren Vortrag immer wieder: „Grid” “Gitternetz”, äquidistant, 2D: O(n²) / 3D: O(n³) diskretisiert den Raum für numerische Lösungen 5 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
7
2. Grundlagen 2. Grundlagen 6 2.1 Physikalische Grundlagen, NSE
2.2 NSE & Grid 2.3 Beispiel: Einfache Partikelengine 2.4 Rückkopplung in Grids 2.5 Linear Sphärische Extrusion 6 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
8
2.1 Physikalische Grundlagen
NSE, Navier-Stokes-Gleichungen System von nichtlinearen partiellen Differentialgleichungen 2. Grades Sie beschreiben ein Newtonsches Fluid „Newtonsch“ = Konstante Viskosität (Geschwindigkeit, Druck) als f(Ort, Zeit) 7 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
9
2.2 NSE & Grid Ein NSES für jedes Problem ein NSES...
Impulserhaltung / Impulssatz für Newtonsche Fluide + Kontinuitätsgleichungen (Masseerhaltung) + Volumenkräfte (z.B. innere und äußere, z.B. Gravitation) + Trägheits- und Zähigkeitskräfte + thermodynamische Veränderungen + ... = „Aufwändiges Problemchen“ mit allen Finessen einer numerischen Lösung von Gleichungssystemen Mehrschrittig, Vereinfachungen, Starke Randbedingungen, Abstraktionen, Ungenauigkeiten führen zu Instabilitäten - Hier insbesondere: „Tradeoff“ Gridbasierter Lösungen 8 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
10
2.3 Beispiel: Partikelengine
kleine, selbstgebaute Partikelengine Visualisiert Partikelfluss auf einem Grid 9 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
11
2.4 Rückkopplung in Grids 1. Druck Druckfeld
2. Geschwindigkeit Geschwindigkeitsfeld 3. Partikel (Advektion) Partikel-/Advektionsfeld 10 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
12
2.5 Linear Sphärische Extrusion
2D – 3D Extrusion „Gegeben: 2 Scheiben – Gesucht: Explosion“ 11 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
13
3. GPGPU 3. GPGPU 12 3.1 Bedeutung der modernen GPU
3.2 Grafikpipeline, Shadinglanguages 3.3 GPGPU, SIMD / Vektorprozessor 3.4 Probleme „auf GPU transferieren“ 12 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
14
3.1 Bedeutung der modernen GPU
Geschwindigkeit und Parallelität GPU als (programmierbarer) Spezialprozessor 13 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
15
3.2 Grafikpipeline, Shadinglanguages
Beispiel: NVIDIA GeForce 6800 Ultra 6 Vertexprozessoren (SIMD oder MIMD Parallelisierung) 16 Fragmentprozessoren (SIMD) 14 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
16
3.3 GPGPU, SIMD / Vektorprozessor
GPGPU – General Purpose Computing GPU PCI-Express = 4GB/s in beide Richtungen! Rechnerarchitektur: „Vektorrechner“ SIMD (Single Instruction Multi Data) Beispiel: NVIDIA 7800XT Shaderinstruktionen („ASM-like“) auf jeder der 24 Pipelines! 15 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
17
3.4 Probleme auf GPU transferieren
CPU GPU Probleme müssen „übersetzt“ werden Eingabe: Texturen „Read-Only Memory“ Verarbeitung: Programmierbare Shadereinheiten Ausgabe: „Bild“ GRID und Bild (x,y,z) = Werte-Tripel = RGB bzw. (x,y,z,w) auf RGBA 2D Vektorfeld Textur/Bild Vektor/Feldoperationen Bildoperationen GPU sehr gut geeignet für Vektorfeldverarbeitung! 16 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
18
4. Contribution 4. Contribution 17
4.1 „Templates“ zur Simulationssteuerung 4.2 Templates: Erzeugung und Anwendung I 4.3 Templates: Erzeugung und Anwendung II 4.4 Strukturen und Frequenzen 17 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
19
4.1 „Templates“ zur Simulationssteuerung
Erinnerung: Druck Geschwindigkeit Flussfeld Rückkopplung ... Physische Feststellung: Änderungen im Druck schlagen sich in geometrisch ähnlichen Geschwindigkeitsphänomenen nieder Ebenso: Strukturen im Geschwindigkeitsfeld bestimmen das Aussehen des Flusses Dazu die Erkenntnis: RGB „Bild“ Vektorfeld Vektor(feld)operationen Bildoperationen Idee: Templates zur Steuerung der Simulation Konkret: „Injiziere“ (= Einblenden) ein Bild in das Druck oder Geschwindigkeitsfeld 18 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
20
4.2 Templates: Erzeugung / Anwendung I
„Neuer“ Overview: Felder + kontrollierende Templates + 19 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
21
4.3 Templates: Erzeugung / Anwendung II
Templates können gezeichnet oder selbst entworfen sein als „Screenshots“ aus Simulationen entnommen werden wie Bilder aus anderen Templates aufgebaut sein gruppiert, skaliert werden vom Anwender/der Applikation in die Simulation injiziert werden Drucktemplates „intuitively model divergence phenomena“ Modellieren von Quellen und Senken Geschwindigkeitstemplates „add large-scale-structures“ Schnellen, Bögen oder Wirbel 20 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
22
4.4 Strukturen und Frequenzen
Effektmodellierung durch verschiedene Parameter Verschiedene / verschieden geformte Templates Dauer und Frequenz der Template-„Injektion“ Ort (Wahrscheinlichkeitsverteilung) Abhängigkeiten (z.B. Templates in Abhängigkeit zu diversen Gegebenheiten) In all images, templates of equal shape and number are inserted. From Image 1 to 3 we see high, medium and low frequency structures. In image 4 all frequencies are contained. These effects are achieved by using different lifetimes and scale factors. 21 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
23
5. Ergebnisse & Bewertung
5.1 Leistungsmessungen 5.2 Pro & Contra 5.3 Persönliche Meinung und Ausblick 22 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
24
5.1 Leistungsmessungen Solving the NSE on 2D Grids Full Demo, i.e.:
- 2 x 2D Simulation - 40 pressure Templates - extrusion to 3D Impact of pressure templates 23 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
25
5.2 Pro & Contra Pro: Contra: 24 Niedrige Busbelastung
Modellierung ist „intuitiv“ Nutzung der GPU bringt Rechenpower! Contra: Kartenspezifischer Ansatz (Shader) Aufwändige und unintuitive Programmierung „GPGPU ist Aufgabe von Spezialisten“ 24 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
26
5.3 Persönliche Meinung und Ausblick
GPGPU definitiv richtungsweisend Parallelisierung Programmierbare Chipsätze SIMD/MIMD Technologie Spiele/VR Navier Stokes? für dieses Anwendungsgebiet ... immer noch zu rechenintensiv! CPU Aufgaben wurden schon immer „ausgelagert“ FPU, SPU, GPU, ... PPU (Physics Processing Unit) ist nur eine Frage der Zeit! 25 1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung
27
Vielen Dank für Ihre Aufmerksamkeit!
Offene Fragen? Folie 1. Motivation & Overview 2 1.1 Motivation 3 1.2 Themenüberblick 4 1.3 Begriffe 5 2. Grundlagen 6 2.1 Physikalische Grundlagen, NSE 7 2.2 NSE & Grid 8 2.3 Beispiel: Einfache Partikelengine 9 2.4 Rückkopplung in Grids 10 2.5 Linear Sphärische Extrusion 11 3. GPGPU 3.1 Bedeutung der modernen GPU 13 3.2 Grafikpipeline, Shadinglanguages 14 3.3 GPGPU, SIMD / Vektorprozessor 15 3.4 Probleme „auf GPU transferieren“ 16 4. Contribution 17 4.1 „Templates“ zur Simulationssteuerung 18 4.2 Templates: Erzeugung und Anwendung I 19 4.3 Templates: Erzeugung und Anwendung II 20 4.4 Strukturen und Frequenzen 21 5. Ergebnisse & Bewertung 22 5.1 Leistungsmessungen 23 5.2 Pro & Contra 24 5.3 Persönliche Meinung und Ausblick 25 26
28
Referenzen und Literaturverzeichnis
Mit Stand vom 26. Juni 2006: GPU Simulation and Rendering of Volumetric Effects for Computer Games and Virtual Environments Jens Krüger and Rüdiger Westerman, Eurographics 2006, Publication taken from: Additional Materials:
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.