03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten:...

34
03.02.2004 SEP - Model generation and advanced rendering technique s Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution deformable Objects: Model generation and advanced rendering techniques Systementwicklungsprojekt WS 2004/ 2005

Transcript of 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten:...

Page 1: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 1

TU - München

Referenten:Ludwig HoegnerJochen StrunckStefan Plafka

Multiresolution deformable Objects:

Model generation and advanced rendering techniques

SystementwicklungsprojektWS 2004/ 2005

Page 2: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 2

Anwendungsgebiete

• Simulation

• Forschung

• Medizin

• Ingenieurwesen

• etc.

Page 3: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 3

Aufgaben und VortragsablaufÜberblick:

1. 3D-Objekte Tetraedisieren (für Deformationsprogramm)

2. Deformation

I. Finden der Controlmesh Flächen

II. Gewichtung der Control-Punkte

3. Darstellung mit OpenGL

I. Berechnung der Normalen

II. CPU

III. GPU-Beschleunigung

4. Fell Shader

I. Generieren einer Fell-Textur

II. Dynamisches Fell

III. Fell auf bestimmte Teile des Objektes begrenzen

5. Kurze Demonstration

Page 4: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 4

3D-Daten aufbereiten• Einführung zum Tetraedisieren

Was ist Tetraedisieren und warum brauchen wir es?

• Vorarbeiten

•Erzeugung verschiedener Auflösungen eines 3D-Modells

•Umwandeln der Modelle in für den Tetraedisierer lesbare Daten

• Fehlerkorrektur

• Festlegung der gewünschten Ausgangswerte

• Tetraedisierung der verschiedenen Auflösungen mit

unterschiedlichen Qualitätsstufen

• Auswahl der optimalen Qualität

• Zusammenstellen der ausgewählten Qualitätsstufen und

Umwandlung der Daten in das für die Simulation lesbare Format

Page 5: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 5

Einführung zum Tetraedisieren

• Was ist Tetraedisieren ?

3D-Modelle liegen meist als Oberflächen vor, die aus Dreiecken aufgebaut sind.

Das Objekt in im Inneren quasi hohl.

Ein Tetraedisierer wandelt nun dieses aus Dreiecken bestehende

Oberflächenmodell in ein aus Tetraedern bestehenden Volumenmodell um.

• Warum Tetraedisieren ?

Zur Berechnung von physikalischen Eigenschaften wie Deformationen benötigt

man Volumenkörper, später mehr dazu.

Page 6: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 6

Vorarbeiten• Erzeugung von verschiedenen Auslösungen eines Modells

Als Ausgangsdaten liegen verschiedene Auslösungen eines Modells vor, in

unserem Fall im obj-Format, wie es z.B. Maja erzeugt.

• Umwandeln der Modelle in lesbare Daten

Diese obj-Daten werden im ersten Schritt so umkonvertiert, dass sie für den

verwendeten Tetraedisierer lesbar sind. Für die beiden alternativ zur Auswahl

stehenden Tetraedisierer Tetgen und Netgen sind das jeweils unterschiedliche

Formate.

• Tetgen erhält seine Eingangsdaten im poly-Format

• Netgen erhält seine Eingangsdaten im stl-Format

Page 7: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 7

FehlerkorrekturLeider gibt es häufig fehlerhafte Werte aus den Eingangsdaten.

Die meisten Fehler sind:

• Löcher

• Hervorstehende einzelne Dreiecke

• 2 sich überschneidende Flächen

• Einzelne im freien Raum schwebende Punkte

Lösungsweg:

• Alle Linien aller Dreiecke sammeln und zählen. Linien zu korrekten Dreiecken

kommen genau 2 mal vor - löschen aller Dreiecke, die eine Linie besitzen, die

nur einmal vorkommt (Löcher, hervorstehenden Kanten)

• Bei 2 überschneidenden Flächen eine Fläche auf einen Punkt der anderen

Fläche zusammenschrumpfen und die Nachbardreiecke nachziehen

• Jetzt nicht mehr verwendete Punkte löschen und die Ids der Punkte in den

Dreiecken anpassen

• Verfahren wenn nötig mehrmals wiederholen, funktioniert leider nicht immer

Page 8: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 8

Festlegung der Ausgangswerte• Anzahl der einzulesenden Detailstufen

• Anzahl der zu erzeugenden Detailstufen

In der späteren Simulation kann auch mit mehreren Qualitätsstufen gearbeitet

werden. Wie viele das sind, wird hier festegelegt

• Mindestzahl und Höchstzahl an Elementen

Die Mindestzahl gibt die gewünschte Elementezahl der niedrigsten Detailstufe

an, die Höchstzahl die gewünschte Elementezahl auf der höchsten Detailstufe.

Für dazwischen liegende Detailstufen k wird die gewünschte Punktzahl

interpoliert nach der Formel:

Mindestzahl * ( (Höchstzahl / Mindesatzahl )^(1/(Anzahl Level-1)) )^k

Page 9: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 9

Tetraedisierung• Einbindung der Tetraedisierer als eigene Programme über

Kommandozeilenaufruf

Vorteil: Neue Versionen können ohne Eingriff in den Quellcode verwendet werden

• Erstellung verschiedener Qualitätsstufen für jedes Eingangslevel

• Netgen: Erzeugt von sich aus 5 Qualitätsstufen

• Tetgen: Wird mehrmals mit verschiedenen Parametern aufgerufen

• Nacharbeiten bei Netgen

Während Tetgen die Daten bereits im für die Simulation lesbaren Format liefert,

müssen sie für vom Netgen erst noch umgewandelt werden. Für die weitere

Bearbeitung werden die Ausgaben in 2 Dateien je Ausgabe aufgeteilt:

• eine node-Datei, in der alle Punkte mit ihren Koordinaten stehen

• eine ele-Datei, in der alle Tetraeder aufgelistet sind und mit den Punkte über

deren Index verbunden sind.

Page 10: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 10

Auswahl der optimalen Qualität• Speicherung aller erzeugten Qualitätsstufen

für jedes Level und Vermerk der Elementezahlen in einer Liste nach dem

Schema:

Level1 - Qualität schlecht

Level1 - Qualität gut

Level2 - Qualität schlecht

Level2 - Qualität gut

Dabei kann Level1 - Qualität gut durchaus mehr Elemente haben wie Level2 -

Qualität schlecht

• Suche von der obersten Detailstufe abwärts

Beginnend mit dem letzten Elemente der eben erzeugten Liste wird nach der

ersten Ausgabe gesucht, die der gewünschten Elementezahl entspricht. Auf

Grund der Speicherreihenfolge ist das dann automatisch die Ausgabe der

qualitativ hochstwertigen Eingangsdetailstufe, die für diese Elementezahl

möglich ist. Dabei wird in mehren Suchdurchläufen die erlaubte Abweichung

von der optimalen Zahl zunehmend erhöht, bis ein Treffer gefunden ist.

Page 11: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 11

Zusammenstellen und Umwandeln• Zusammenstellen der Ausgabedetails in ein einer Datei

In einem letzten Schritt müssen die ausgewählten Detailstufen nun noch für das

Simulationsprogramm zusammengestellt werden.

Dabei werden getrennt nach der node- und der ele-Datei die verschiedenen

Detailstufen hintereinander gereiht. Dabei erfolgt eine nochmalige Prüfung der

Punkte auf ihre Verwendung in den Tetraedern.

• Erzeugung einer einfachen Parameterdatei zur sofortigen Anzeige

im Simulationsprogramm

Beinhaltet rudimentäre Daten wie Skalierung oder eine Standardtextur und -

oberfläche

Page 12: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 12

Deformation

Physikalisch korrekt

berechnetes Volumenobjekt

Ziel: Angleichung einer

hochauflösenden Oberfläche

• Definition von Controlmesh Flächen und Control-Punkte

Die Flächen oder die Punkte des physikalisch korrekt berechneten

Volumenobjektes, an die wir unser hochauflösendes Objekt binden.

Page 13: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 13

Problem

Problemfall

Gewichtete Interpolation der hochauflösenden Punkte zwischen den Punkten des Controlmeshes.

Finden der drei besten Control-Punkte für jeden Vertex des

hochauflösenden Objektes.

Page 14: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 14

Finden der Kontroll-PunktePer Punkteabstand

Leider findet die Methode nicht immer

die richtigen Punkte.

Kleinster Abstand zur Flächenebene

Findet Flächendreiecke, die

häufig entfernt liegen.

Punkt auf Fläche projizieren, dann die

Fläche auswählen, die den projizierten

Punkt enthält und am nächsten liegt:

Leider findet auch die Methode andere Flächen.

Page 15: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 15

Baryzentrische Koordinaten Baryzentrische Koordinaten für ein 2-Dimmensionales Dreieck:

Gegeben seien drei Punkte A, B, C. Jeder weitere Punkt der Ebene lässt sich dann als gewichtetes arithmetisches Mittel der Punkte A, B, C mit Gewichtssumme 1 schreiben:

P = a1 * A + a2 * B + a3 * C

Die Koeffizienten a1, a2, a3 heißen Baryzentische Koordinaten von P und werden wie folgt berechnen:

a1 = Fläche (PBC) / Fläche (ABC),

a2 = Fläche (APC) / Fläche (ABC),

a3 = Fläche (ABP) / Fläche (ABC),

ABC ist das Koordinatendreieck.

A

B

C

P

Page 16: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 16

Finden der Controlmesch Fläche• Endgültig verbinden wir zwei Methoden

• Projektion des Punktes auf die Fläche

und dessen bayzentrischen Werte

• Kleinsten Abstand zur Flächenebene

• Einsetzen der baryzentrischen Koordinaten

• sind die drei baryzentrischen Werte positiv,

tritt kein Problem auf.

• Ist min. eine von ihnen negativ,

nehmen wir von allen Flächen diejenige,

die den kleinsten Abstand zum

hochauflösenden Punkt hat.

Beim Abspeichern werden die baryzentrischen Koordinaten für die

Gewichtung der jeweiligen Punkte mitgespeichert.

Page 17: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 17

Beschleunigen des Vorgangs

• Nur Tetraeda an der Oberfläche überprüfen

• Einordnen der Kontrollflächen in Raumsegmente

Page 18: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 18

Normalenberechnung

• Für jede Fläche die Normale berechnen

• Zu jedem Punkt der Fläche den Normalenwert dazuzählen

• Danach jeden Punkt normalisieren (per openGL möglich)

Wird nicht von openGL gelöst

Page 19: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 19

Deformation Ergebnis:

Page 20: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 20

GPU Beschleunigung

• Berechnungen auf der GPU

• Warum? GPU höher parallelisiert.

• Deshalb bei Berechnung der selben Operation auf viele Daten

wesentlich schneller als CPU.

• Daten (Geometrie) müssen nicht für jeden Frame über den Bus

Page 21: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 21

GPU Beschleunigung• Vertex-Shader:

• Ausführung bei Angabe einer Vertex-Position (z.B. per „glVertex“)

• Nicht möglich: Auf andere Vertices zugreifen

• Fragment-Shader:

• Ausführung für jedes rasterisierte Fragment

• Schnelle ausführung von:

Texturzugriff und Operationen auf interpolierten Attributen

• Fixed Function-Pipeline:

Frame BufferVertex

Prozessor

Fragment

Prozessor

Vertex Shader Fragment Shader

Page 22: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 22

GPU Beschleunigung

Daten werden im Vertex-Shader benötigt:

• Pre-Pass Rendering

• Fragment-Shader ist Leistungsfähiger als der Vertexshader.

• Berechnungen im Fragment Shader:

- Dateneingabe in Form von Texturen

- Ergebnis wird in Offscreenbuffer ausgegeben.

• Zweiter Rendering Durchgang:

auslesen der Offscreen Inhalte und Verwendung als vertex-

Position

• Texture-fetch in Vertex-Shader

• Copy to Bufferobject auf der GPU

• Superbuffer (derzeit nicht von Nvidia unterstützt)

Page 23: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 23

GPU Beschleunigung

+

=

w3 = 1-w1-w2

Page 24: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 24

Fell-Shader• Fell Shader:

• Volumen Textur

• Ebenen Modell

• Generierung einer Fell Textur

• Generierung geeigneter Textur Koordinaten

• Möglichkeiten den Realismus zu Steigern

Page 25: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 25

Fell-Shader• Volumen Textur:

• Warum?

• Geometrie für jedes Haar ist zu langsam

• Kaum Realistische Darstellung möglich

• Ebenen:

• Viele Ebenen werden erstellt.

• Extrusion in Richtung der Normalen

Page 26: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 26

Fell-Shader• Generierung der Fell Textur:

• Alpha-Rauschen: Textur mit Zufallswert in jedem Texel

bestimmt Position und Form der Haare

• Farb-Variation

• Verlauf vom Fell-Ansatz zu Spitze:

• Rauschen auf Alphakanal wird

dunkler (durchsichtiger)

• Farbwert geht von dunkel (Schatten)

nach hell

Page 27: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 27

• Generierung der Fell-Textur Koordinaten:

• Ziel: Fell muss ohne Verzerrungen auf beliebigen Oberflächen

liegen

• Lapped Patches

• Box Texture-Coordinates

Fell-Shader

• pro Vertex ein Texturkoordinatenpaar

• Vertex Separierung an Textur Koordinaten Grenze

=> Alle Punkte entlang der Grenze Speichern.

• Die Normalen an den Grenzen müssen geglättet werden

Page 28: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 28

Fell-Shader• Ergebnis:

Page 29: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 29

Fell-Shader• Dynamisches Fell:

• Ziel: Fell soll sich bei Deformation des Modells korrekt bewegen

• Merken des Controlmeshes vom letzten Frame

• Vergleich mit aktueller Position

=> der Unterschied ergibt die deformation

• Begrenzung der Fellbewegung

Page 30: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 30

Fell-Shader• Darstellung:

• Glanzlicht vom Fell

• Mit Alpha-Kanal vom Fell skalieren

• Reflektions-winkel:

Normale Oberfläche Fell Reflektion

Page 31: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 31

Fell-Shader• Darstellung:

• Einfärben des Fells mit Textur

• Generiere Weißes Fell

• Nutzung des Alpha-Kanals zum Freistellen bestimmter Bereiche.

• Skalierung der Helligkeit und des Glanzlichtes auf der

Grundfläche

Page 32: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 32

Fell-Shader

Page 33: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 33

Literatur

• A Multiresolution Approach for Real-Time Simulation of Deformable Objects, Joachim Georgii

• Dynamic Fur, Tomohide Kano http://www.ati.com/developer/indexsc.html

• Hair & Fur, Anand Mathew

• Lapped Textures & Fur, Hugues Hoppehttp://research.microsoft.com/~hoppe/

Vielen Dank für Eure Aufmerksamkeit

Page 34: 03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution.

03.02.2004 SEP - Model generation and advanced rendering techniques Folie 34

E N D E