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

Post on 05-Apr-2015

111 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.2 Templates: Erzeugung / Anwendung I

„Neuer“ Overview:Felder + kontrollierende Templates

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

19

+

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

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.

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

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

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

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

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

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

top related