Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

TU - München Multiresolution deformable Objects: Model generation and

Ähnliche Präsentationen


Präsentation zum Thema: "TU - München Multiresolution deformable Objects: Model generation and"—  Präsentation transkript:

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

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

3 Aufgaben und Vortragsablauf
Überblick: 3D-Objekte Tetraedisieren (für Deformationsprogramm) Deformation Finden der Controlmesh Flächen Gewichtung der Control-Punkte Darstellung mit OpenGL Berechnung der Normalen CPU GPU-Beschleunigung Fell Shader Generieren einer Fell-Textur Dynamisches Fell Fell auf bestimmte Teile des Objektes begrenzen Kurze Demonstration SEP - Model generation and advanced rendering techniques

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

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

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

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

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

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

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

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

12 Deformation 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. Diese Punkte des Hochauflösenden Meshes sollten sich genauso bewegen und verhalten wie das dreieck von dem Control mesh. Gewichtete Interpolation der hochauflösenden Punkte zwischen den Punkten des Controlmeshes. Physikalisch korrekt berechnetes Volumenobjekt Ziel: Angleichung einer hochauflösenden Oberfläche SEP - Model generation and advanced rendering techniques

13 SEP - Model generation and advanced rendering techniques
Problem 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. Problemfall SEP - Model generation and advanced rendering techniques

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. 1. Methode: Funktioniert für die meisten punkte ganz gut, aber es kann (wie auf diesem Bild zu sehen) auch vorkommen, dass der Punkt an ein ganz anderes Objekt gebunden wird. Deshalb benötigen wir einen Ansatz. (Entweder grobes Man Verfeinern, aber davon kann nicht ausgehen) ODER der uns die näheste Fläche gibt: nächstes Bsp. 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. SEP - Model generation and advanced rendering techniques

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. B A P Baryzentrische Koordinaten: Strecken-Wert ist der Flächeninhalt der Fläche gegenüber. C SEP - Model generation and advanced rendering techniques

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

17 Beschleunigen des Vorgangs
Aufteilung vom Schwerpunkt aus. Die Oberflächen der Tetraeder werden separat gespeichert. Grenzflächen werden doppelt eingetragen. Beschleunigung des Aufbaus bei dem hochauflösendem Bunny von 5 Minuten auf 30 Sekunden. Nur Tetraeda an der Oberfläche überprüfen Einordnen der Kontrollflächen in Raumsegmente SEP - Model generation and advanced rendering techniques

18 SEP - Model generation and advanced rendering techniques
Normalenberechnung Wird nicht von openGL gelöst Die Mittelung der Normalen ergibt die gewünschte Glatte Oberfläche. 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) SEP - Model generation and advanced rendering techniques

19 SEP - Model generation and advanced rendering techniques
Deformation Ergebnis: Jedes beliebige tetraedisierbares Objekt lässt sich verformen. Jeder Punkt wurde auf der CPU berechnet und dann an die Grafikkarte geschickt. SEP - Model generation and advanced rendering techniques

20 SEP - Model generation and advanced rendering techniques
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 Optimale Nutzung der Resourcen. Selbst für animierte Geometrie müssen die daten nicht in jedem frame alle vertices über den Bus. Hier Hinweis auf Möglichkeiten die Offscreendaten in den vertex buffer zu bekommen? (SuperBuffer, Texture-fetch im Vertexshader, Readpixel) SEP - Model generation and advanced rendering techniques

21 SEP - Model generation and advanced rendering techniques
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: Vertex Shader Fragment Shader Können geändert werden: Vertex- / Normalentransformation, Beleuchtung / Materialanwendung, Texturkoordinatengenerierung / -transformation Vertex Prozessor Fragment Prozessor Frame Buffer SEP - Model generation and advanced rendering techniques

22 SEP - Model generation and advanced rendering techniques
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) Erst vertex, dann fragment shader. Selbst für animierte Geometrie müssen die daten nicht in jedem frame alle vertices über den Bus. Hier Hinweis auf Möglichkeiten die Offscreendaten in den vertex buffer zu bekommen? (SuperBuffer, Texture-fetch im Vertexshader, Readpixel) SEP - Model generation and advanced rendering techniques

23 SEP - Model generation and advanced rendering techniques
GPU Beschleunigung + w3 = 1-w1-w2 = Nur deformatinos Textur wird in jedem Durchgang hochgeladen. 2. Durchgang liest Ergebnis ein. SEP - Model generation and advanced rendering techniques

24 SEP - Model generation and advanced rendering techniques
Fell-Shader Fell Shader: Volumen Textur Ebenen Modell Generierung einer Fell Textur Generierung geeigneter Textur Koordinaten Möglichkeiten den Realismus zu Steigern Erweiterte rendertechnik. Echtzeitfähiges Fell. SEP - Model generation and advanced rendering techniques

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

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

27 SEP - Model generation and advanced rendering techniques
Fell-Shader Generierung der Fell-Textur Koordinaten: Ziel: Fell muss ohne Verzerrungen auf beliebigen Oberflächen liegen Lapped Patches Box Texture-Coordinates 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 SEP - Model generation and advanced rendering techniques

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

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

30 SEP - Model generation and advanced rendering techniques
Fell-Shader Darstellung: Glanzlicht vom Fell Mit Alpha-Kanal vom Fell skalieren Reflektions-winkel: Normale Oberfläche Fell Reflektion SEP - Model generation and advanced rendering techniques

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

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

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

34 SEP - Model generation and advanced rendering techniques
SEP - Model generation and advanced rendering techniques


Herunterladen ppt "TU - München Multiresolution deformable Objects: Model generation and"

Ähnliche Präsentationen


Google-Anzeigen