tesselation vortrag im rahmen des seminars computergrafik ii dozent: dipl.-phys. olaf müller...

24
Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Upload: juliane-hemmen

Post on 05-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselation

Vortrag im Rahmen des Seminars Computergrafik II

Dozent: Dipl.-Phys. Olaf Müller

Student: Amir Sekic

Page 2: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Übersicht

Was ist Tesselation? Was sind Tesselators? Polygon Triangulation Shading Problems Edge Cracking T-Vertices

Page 3: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselation Tesselation – Zerlegung von Polygonen

in primitive Flächen: Dreiecke und Vierecke.

to tesselate - mit Mosaik pflastern , schmücken.

Triangulation – Zerlegung von Polygonen in Dreiecke.

Dreiecke sind fast wie Atome,da fast jede Fläche in Dreiecke zerlegt werden kann.

Page 4: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Gründe für Tesselation Viele Grafik - API-s und Grafikkarten

sind für Dreiecke optimiert oder können nur konvexe Polygone behandeln (convex partitioning).

Über die Fläche soll ein Netz aufgespannt werden, um Schatten und reflektiertes Licht zu regulieren.

Separieren kleiner Teile der Fläche.

Page 5: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators Das erste, was ein Tesselator tun

soll, ist ein 3-D Polygon in die günstigste Ebene zu projezieren.

Die beste Projektionsseite ist die mit der größten Projektionsfläche, um self-intersection (Kreuzung der Polygonkanten) zu vermeiden.

Ein Weg ist die Koordinaten der Normale mit der größten Magnitude auf die Null zu setzen.

Page 6: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators Dieses Verfahren eliminiert

die meisten, aber nicht alle Kreuzungen der Polygonkanten.

Es kann ein sogenanntes Bowtie-Viereck entstehen.

In diesem Fall wird ein Vergleich der Polygonkanten notwendig.

Für 2-D und 3-D kann man es mit der Methode der Linienvergleiche überprüfen.

Page 7: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators Der nächste Schritt ist die

Zerlegung in konvexe Regionen (ein sehr komplexes und langsames Verfahren), im Teil Polygon Triangulation wird dieses später näher erklärt.

Hierbei sind die Hohlräume und die winding number zu beachten.

Page 8: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators Die Idee bei den

Hohlräumen ist ein vorsichtiges Verbinden von zwei Vertices der inneren und äußeren Kante.

Dabei erhält man ein Polygon mit einer inneren und einer äußeren Region.

Page 9: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators winding number – gibt an,

wie oft der Punkt von der Kontur des Polygons umlaufen wird bzw. wie viele Konturen ihn umschließen.

Man geht von außen nach innen vor.

Wenn man die Kante im Uhrzeigersinn abläuft, wird die Zahl um eins erniedrigt, im anderen Fall um eins erhöht.

Page 10: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Tesselators Die Winding Rule

klassifiziert einen Bereich als Innen, wenn die winding number zur gewählten Kategorie gehört, nämlich ungerade, ungleich null,positiv, negativ oder Iwinding numberI<=2.

Page 11: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation Dreieckszerlegungen von

Polygonen ohne Kantenüberschneidungen und Hohlräume.

Verfahren: Zerlegung in monotone Regionen (Polygonen) und dann in Dreiecke.

Page 12: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation Definition: Ein

Polygon ist monoton in Beziehung zur Linie l, wenn für jede Linie l‘ die orthogonal zur l ist beim Schneiden mit Polygonkanten eine Linie (Segment) oder ein Punkt entsteht.

Page 13: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation Das Verfahren: Wir gehen vom

obersten Vertex zum niedrigsten. Wenn sich die Laufrichtung an einem

Vertex von oben nach unten oder von unten nach oben ändert haben wir ein Turn Vertex.

Definition: p ist oberhalb von g wenn py<=gy und px>gx ist, p ist unterhalb von g wenn py>=gy und px<gx ist.

Page 14: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation Es gibt 5

verschiedene Vertices die folgendermaßen definiert sind:

Start Vertex: wenn die Nachbarn unterhalb liegen und der innere Winkel < Pi ist; wenn der Winkel > Pi ist, dann ist das ein Split Vertex.

Page 15: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation End Vertex: wenn die

Nachbarn unterhalb liegen und der Winkel < Pi ist; wenn der Winkel > Pi ist, dann ist es ein Merge Vertex. Alle anderen sind Reguläre Vertices.

Um monotone Polygone zu bekommen muss man Split und Merge Vertices eliminieren.

Page 16: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation Bei Split Vertices wird

die Diagonale zum nächsthöheren (bezogen auf den y-Wert) Vertex gezogen wenn die Diagonale innerhalb des Polygons liegt.

Bei Merge Vertices wird die Diagonale zum nächstniedrigeren Vertex gezogen.

Page 17: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Polygon Triangulation

Triangulation monotoner Regionen

Der Algorithmus: Input: Ein Polygon P,

gelagert in einer doppeltverketteten Liste, ein leerer Keller.

Output: Dreieckszerlegung von Polygon P.

Page 18: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Shading Problems Manchmal sind auf

Polygone Netze aufgespannt, die aus Vierecken bestehen(um Bowtie zu vermeiden).

Was ist der beste Weg, die Vierecke in die Dreiecke zu zerlegen?

Page 19: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Shading Problems Für die Flächen ohne zusätzliche

Informationen ist es das Beste, die kürzeste Diagonale zu nehmen.

Bei Vertices die unterschiedliche Farbwerte haben verbindet man die Vertices mit dem kleinsten Farbwertunterschied.

Bei Landschaften gibt es mehrere Möglichkeiten, abhängig von den gewünschten Effekten:

Page 20: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Shading Problems Die Diagonale mit dem größten

Winkel zwischen den Dreiecken nehmen.

Verbinden der zwei Vertices mit dem größten und dem kleinsten Höhenunterschied.

Diejenige Diagonale nehmen, die zwei Dreiecke mit dem minimalsten Größenunterschied produziert.

Page 21: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Shading Problems Es gibt Fälle, in denen

Dreiecke das Innere von Vierecken nicht richtig darstellen können.

Ein Weg ist, ein Netz aufzuspannen oder ein anderes Interpolationsschema für die Textur zu nehmen.

Ein anderer Weg ist, Gouard Shading auf das ganze Viereck anzuwenden.

Page 22: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Edge Cracking Einige Modeller benutzen NURBS

um Kurven zu beschreiben, meistens sind über die Spline Flächen Netze aufgespannt.

Vorgehensweise: Man geht schrittweise über die Fläche und berechnet die Vertices und Normalen.

Ein Problem entsteht wenn sich zwei Spline Flächen treffen.

Page 23: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

Edge Cracking Wenn die Vertices auf der

gemeinsamen Kante nicht gleich sind, können sogenannte Cracks entstehen.

Edge-Stitching nennt man den Prozess um dieses Problem zu korrigieren. Hierbei ist sicher zu stellen, dass alle Vertices der gemeinsamen Kante gemeinsam für beide Splines sind.

Page 24: Tesselation Vortrag im Rahmen des Seminars Computergrafik II Dozent: Dipl.-Phys. Olaf Müller Student: Amir Sekic

T-Vertizes Dieses Problem entsteht

wenn zwei Regionen versuchen die Vertices an der gemeinsamen Kante zu teilen.

Ein Weg dies zu vermeiden ist die Benutzung grafischer Hardware mit Subpixel Addressing, ein anderer Weg das Finden und Sicherstellen solcher Kanten, bei denen die Vertices auf der gemeinsamen Kante allen Flächen gehören(eine oft sehr schwierige Prozedur).