Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "03.02.2004SEP - Model generation and advanced rendering techniques Folie 1 TU - München Referenten: Ludwig Hoegner Jochen Strunck Stefan Plafka Multiresolution."—  Präsentation transkript:

1 SEP - Model generation and advanced rendering techniques 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

2 SEP - Model generation and advanced rendering techniques Folie 2 Anwendungsgebiete Simulation Forschung Medizin Ingenieurwesen etc.

3 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

4 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

5 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.

6 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

7 SEP - Model generation and advanced rendering techniques Folie 7 Fehlerkorrektur Leider 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

8 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

9 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.

10 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.

11 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

12 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.

13 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.

14 SEP - Model generation and advanced rendering techniques Folie 14 Finden der Kontroll-Punkte Per 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.

15 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 = a 1 * A + a 2 * B + a 3 * C Die Koeffizienten a 1, a 2, a 3 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

16 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.

17 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

18 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

19 SEP - Model generation and advanced rendering techniques Folie 19 Deformation Ergebnis:

20 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

21 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 Buffer Vertex Prozessor Fragment Prozessor Vertex ShaderFragment Shader

22 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)

23 SEP - Model generation and advanced rendering techniques Folie 23 GPU Beschleunigung + = w3 = 1-w1-w2

24 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

25 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

26 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

27 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

28 SEP - Model generation and advanced rendering techniques Folie 28 Fell-Shader Ergebnis:

29 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

30 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ächeFell Reflektion

31 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

32 SEP - Model generation and advanced rendering techniques Folie 32 Fell-Shader

33 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 Hair & Fur, Anand Mathew Lapped Textures & Fur, Hugues Hoppe Vielen Dank für Eure Aufmerksamkeit

34 SEP - Model generation and advanced rendering techniques Folie 34 E N D E


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

Ähnliche Präsentationen


Google-Anzeigen