seminar 3d animation und visualisierung technische universität darmstadt ss2006 - andreas...

28
Seminar „3D Animation und Visualisierung“ Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects for Computer Games and Virtual Environments Jens Krüger, Rüdiger Westermann

Upload: arnwald-strand

Post on 05-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

Seminar „3D Animation und Visualisierung“

Technische Universität Darmstadt

SS2006 - Andreas Schwarzkopf

GPU Simulation and Renderingof Volumetric Effects

for Computer Games and Virtual EnvironmentsJens Krüger, Rüdiger Westermann

Page 2: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

Inhalt

1. Motivation & Overview 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

Page 3: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

1. Motivation & Overview 1. Motivation & Overview

1.1 Motivation

1.2 Themenüberblick

1.3 Begriffe

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

2

Page 4: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

1.1 MotivationEinsatzrahmen der vorgestellten Techniken

Simulation von FluidenUmfasst 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

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

3

Page 5: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

1.2 Themenüberblick Fluid Simulation (2D)

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

GPU Based Particle Engine

Spherical Interpolation

Volume Rendering

4

Page 6: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

1.3 Begriffe „Themengebiet“: CFD

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

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

5

Page 7: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2. Grundlagen 2. Grundlagen

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

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

6

Page 8: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2.1 Physikalische GrundlagenNSE, 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)

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

7

Page 9: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2.2 NSE & GridEin 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 einernumerischen Lösung von Gleichungssystemen

- Mehrschrittig, Vereinfachungen, Starke Randbedingungen, Abstraktionen, Ungenauigkeiten führen zu Instabilitäten

- Hier insbesondere: „Tradeoff“ Gridbasierter Lösungen

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

8

Page 10: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2.3 Beispiel: Partikelengine kleine, selbstgebaute Partikelengine

Visualisiert Partikelfluss auf einem Grid

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

Anwendung

9

Page 11: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2.4 Rückkopplung in Grids 1. Druck Druckfeld

2. Geschwindigkeit Geschwindigkeitsfeld

3. Partikel (Advektion) Partikel-/Advektionsfeld

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

10

Page 12: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

2.5 Linear Sphärische Extrusion 2D – 3D Extrusion

„Gegeben: 2 Scheiben – Gesucht: Explosion“

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung11

Page 13: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

3. GPGPU 3. GPGPU

3.1 Bedeutung der modernen GPU

3.2 Grafikpipeline, Shadinglanguages

3.3 GPGPU, SIMD / Vektorprozessor

3.4 Probleme „auf GPU transferieren“

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

12

Page 14: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

3.1 Bedeutung der modernen GPU

Geschwindigkeit und Parallelität

GPU als (programmierbarer) Spezialprozessor

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

13

Page 15: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

3.2 Grafikpipeline, Shadinglanguages

Beispiel: NVIDIA GeForce 6800 Ultra 6 Vertexprozessoren (SIMD oder MIMD Parallelisierung)

16 Fragmentprozessoren (SIMD)

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

14

Page 16: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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 65.000 Shaderinstruktionen („ASM-

like“)

auf jeder der 24 Pipelines!

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

15

Page 17: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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!

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

16

Page 18: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

4. Contribution 4. Contribution

4.1 „Templates“ zur Simulationssteuerung

4.2 Templates: Erzeugung und Anwendung I

4.3 Templates: Erzeugung und Anwendung II

4.4 Strukturen und Frequenzen

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

17

Page 19: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

18

Page 20: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

4.2 Templates: Erzeugung / Anwendung I

„Neuer“ Overview:Felder + kontrollierende Templates

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

19

+

Page 21: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

20

Page 22: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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)

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

21

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.

Page 23: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

5. Ergebnisse & Bewertung 5. Ergebnisse & Bewertung

5.1 Leistungsmessungen

5.2 Pro & Contra

5.3 Persönliche Meinung und Ausblick

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

22

Page 24: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

5.1 Leistungsmessungen Solving the NSE on 2D Grids

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

Impact of pressure templates

Full Demo, i.e.: - 2 x 2D Simulation

- 40 pressure Templates

- extrusion to 3D

23

Page 25: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

5.2 Pro & Contra

Pro: Niedrige Busbelastung

Modellierung ist „intuitiv“

Nutzung der GPU bringt Rechenpower!

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

Contra: Kartenspezifischer Ansatz (Shader)

Aufwändige und unintuitive Programmierung

„GPGPU ist Aufgabe von Spezialisten“

24

Page 26: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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!

1. Motivation & Overview – 2. Grundlagen – 3. GPGPU – 4. Contribution – 5. Ergebnisse & Bewertung

25

Page 27: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

Vielen Dank für Ihre Aufmerksamkeit!Offene Fragen? Folie

1. Motivation & Overview 2

1.1 Motivation 31.2 Themenüberblick 41.3 Begriffe 5

2. Grundlagen 6

2.1 Physikalische Grundlagen, NSE 72.2 NSE & Grid 82.3 Beispiel: Einfache Partikelengine 92.4 Rückkopplung in Grids 102.5 Linear Sphärische Extrusion 11

3. GPGPU 12

3.1 Bedeutung der modernen GPU 133.2 Grafikpipeline, Shadinglanguages 143.3 GPGPU, SIMD / Vektorprozessor 153.4 Probleme „auf GPU transferieren“ 16

4. Contribution 17

4.1 „Templates“ zur Simulationssteuerung 184.2 Templates: Erzeugung und Anwendung I 194.3 Templates: Erzeugung und Anwendung II 204.4 Strukturen und Frequenzen 21

5. Ergebnisse & Bewertung 22

5.1 Leistungsmessungen 235.2 Pro & Contra 245.3 Persönliche Meinung und Ausblick 25

26

Page 28: Seminar 3D Animation und Visualisierung Technische Universität Darmstadt SS2006 - Andreas Schwarzkopf GPU Simulation and Rendering of Volumetric Effects

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:– http://wwwcg.in.tum.de/Research/Publications/VolEffects– http://wwwcg.in.tum.de/Research/data/Publications/eg05.pdf

Additional Materials:– http://laplace.physics.ubc.ca/People/msnajdr/OTHER/other.html– http://en.wikipedia.org/wiki/GPGPU– http://de.wikipedia.org/wiki/GPGPU– http://de.wikipedia.org/wiki/Prozessorarchitektur

Referenzen und Literaturverzeichnis