Geometric Representation And Processing
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Thomas Faltermeier
Grundlagen Geometrische Repräsentation ist die Darstellung eines ‚Körpers‘ am Computer durch mathematische Modelle Theoretisch muss der dargestellte Körper nicht real sein, die Darstellung eines realen Körpers hat jedoch den Vorteil, dass dieser feste Eigenschaften besitzt Grundlage für: Berechnung der geometrischen Eigenschaften Darstellung Weitergehende Anwendungen(z.B. Grafikeffekte) Berechnung physikalischer Eigenschaften nach weiterer Beschreibung mit Materialeigenschaften(z.B. Elastizität) Thomas Faltermeier
Definition starrer Körper Translationsvariant(frei verschiebbar) Rotationsvariant(frei drehbar) Echte Dreidimensionale Strukturen, d.h. keine isolierten/frei baumelnden Punkte, Kanten oder Flächen Oberfläche teilt den Raum in Inneres und Äußeres auf Thomas Faltermeier
Darstellung – Was wollen wir? Die Darstellungsmethode sollte Möglichst mächtig sein, d.h. möglichst viele Körper darstellen können Möglichst wenig Speicherplatz in Anspruch nehmen Einen Körper eindeutig beschreiben, d.h. jeder Repräsentant beschreibt einen Körper, jeder Körper wird durch einen Repräsentanten beschrieben Möglichst exakt sein, d.h. Annäherungen sollen vermieden oder möglichst exakt sein Thomas Faltermeier
Darstellung – Was wollen wir? Möglichst hohe Effizienz der darauf angewendeten Algorithmen bieten Es gibt zwei wesentliche Schemen Direkte Darstellung Indirekte Darstellung Kanten und Ober- Volumenbeschreibung flächenbeschreibung Thomas Faltermeier
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Thomas Faltermeier
Normzellenaufzählungsschema Aufteilung des Raumes in ein Gitter gleich großer dreidimensionaler Zellen, sog. Voxel Je nachdem, ob die Zelle innerhalb oder außerhalb der zu beschreibenden Körpers liegt, wird diese ‚gefüllt‘, vergleichbar mit dem Zusammenbauen des Körpers mit identischen Klötzen Je kleiner die Voxel, desto genauer kann der Körper beschrieben werden Allerdings ist der Speicherbedarf für immer kleinere Voxel sehr hoch Thomas Faltermeier
Normzellenaufzählungsschema Thomas Faltermeier
Octalbäume Mächtig wie die Normzellenaufzählung, jedoch bei deutlich geringerem Speicherbedarf Ausgangspunkt: Würfel, der den gesamten Körper umfasst Der Würfel wird nun so lange rekursiv in Würfel halber Kantenlänge unterteilt, bis sich diese innerhalb oder außerhalb des Körpers befinden(Annäherung), die Kantenlänge der Würfel ist also nicht fest vorgeschrieben Speicherung als Baum mit 8 Verästelungen Effizienz stark vom Testalgorithmus abhängig Thomas Faltermeier
Octalbäume Diese Methode funktioniert auch analog in jeder anderen Dimension Thomas Faltermeier
Constructive Solid Geometry(CSG) Körper wird mit Hilfe von Grundkörpern, sog. Primitiven, erstellt Anwendung der Operationen Speicherung als Binärbaum Nachteil: auch hier sind mehrere Repräsentanten möglich Steigerung der Effizienz: Häufig verwendete Objekte werden zu Primitiven und müssen nicht mehr jedes mal zusammengesetzt werden Thomas Faltermeier
Verschiebungsschema Ausgangspunkt: Fläche im Raum Diese Fläche wird nun entlang eines Pfades bewegt oder um einen bestimmten Punkt gedreht Es entsteht ein Translationskörper, bzw. ein Rotationskörper Bsp.: Ein Kreis der um einen Punkt im Raum rotiert erzeugt einen Ring Thomas Faltermeier
Bsp.: Rotierende Sinuskurve Thomas Faltermeier
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Thomas Faltermeier
Drahtmodellschema Körper wird über seine Kanten beschrieben Vorteil: Konstruktion von Körpern ist sehr einfach Nachteil: Eine eindeutige Repräsentation aus dem Drahtmodellschema ist nicht gewährleistet Thomas Faltermeier
Oberflächendarstellung Darstellung des Körpers durch die Beschreibung seiner Oberfläche Zerlegung in eine endliche Menge von Teilflächen Im einfachsten Fall sind nur Polygone zugelassen, die nicht gekrümmt sind – also nur planare Flächen, zusäzlich befindet sich die Verbindungslinie zweier Punkte auf dem Polygon in diesem (keine Löcher in Polygone, keine konkaven Polygone) Rundungen müssen in diesem Fall angenähert werden, je genauer, desto größer wird die Datenmenge Thomas Faltermeier
Oberflächendarstellung ABER: Flächen alleine ergeben noch keinen starren Körper Es müssen folgende Bedingungen erfüllt sein: Geschlossenheit keine Kantenunterbrechungen, keine echten Löcher in Teilflächen(richtiger Durchbruch ist in Ordnung), jede Fläche muss genau so viele Kanten wie Ecken besitzen, jeder Eckpunkt grenzt an die gleiche Menge an Kanten und Flächen an Orientierbarkeit: Beide Seiten einer Fläche müssen unterscheidbar sein {e1, e2, ... , en} sei die Menge aller Kanten Thomas Faltermeier
Oberflächendarstellung Test auf Orientierbarkeit: Orientierung der Kanten gegen den Uhrzeigersinn Ist die Kantenorientierung zweier angrenzender Flächen unterschiedlich wird diese aus der Menge eliminiert Ist die Menge am Ende leer ist die Gesamtoberfläche orientierbar Oberfläche darf sich nicht selbst schneiden Teilflächen dürfen sich nicht selbst schneiden Schnitt zweier Teilflächen nur am Rand Kanten dürfen sich nicht selbst schneiden Zwei Kanten dürfen sich nur an den Enden schneiden Problem: Unterscheidung von hohlen und nicht zusammenhängenden Körpern nicht möglich Thomas Faltermeier
Oberflächendarstellung
Polygon Meshes Nun stellt sich die Frage, wie man diese Polygone abspeichern sollte, es gilt den besten Kompromiss zwischen Laufzeit und Speicherplatzverbrauch zu finden. Explizite Repräsentation Jedes Polygon wird durch seine Eckkoordinaten repräsentiert P = ((x1,y1,z1),...,(xn,yn,zn)) Wichtig: Sinnvolles abspeichern der Punkte, damit Kanten gezeichnet werden können, z.B. im/gegen Uhrzeigersinn Nachteil: Bei mehreren Polygonen werden Punkte doppelt gespeichert, gemeinsame Punkte und Kante werden nicht explizit als solche repräsentiert, bei Veränderungen müssen alle Polygone überprüft und geg. verändert werden Daher nur für ein einzelnes Polygon sinnvoll, oder falls keine Operationen mehr ausgeführt werden (auch Faulheit OK) Thomas Faltermeier
Polygon Meshes Pointers to a vertex list Alle Eckpunkte werden in einer Liste gespeichert Polygonecken sind nur Verweise auf diese Liste Vorteil: Platzersparnis, jeder Punkt wird nur einmal gespeichert Einfaches Ändern der Koordinaten möglich ohne weitere Überprüfungen Nachteil: Flächen/Kanten die an einer gemeinsamen Ecke liegen müssen noch aufwändig gesucht werden Thomas Faltermeier
Polygon Meshes Pointer to an edge list Ecken und Kanten werden in einer Liste gespeichert Polygone werden als Verweise auf die Kantenliste repräsentiert Jede Kante in der Liste hat zwei Verweise auf die Ecken, die sie definieren, sowie die Information zu welchen ein/zwei Polygonen sie gehört P = (E1,...,En) E = (V1,V2,P1,P2) V = (x,y,z) Thomas Faltermeier
Polygon Meshes Vorteile: Einfache Abspeicherung Nachteile: Algorithmen können nicht sehr effizient integriert werden, da viele Überprüfungen nötig sind Speicherbedarf höher als nötig Thomas Faltermeier
Polygon Meshes Thomas Faltermeier
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Topologie= Nachbarschaftsrelationen Geometrie=Ort der Eckpunkte Thomas Faltermeier
vef-Graph vv V x V :Punkte sind benachbart Die Topologie berücksichtigt die Nachbarschafts- beziehungen von Punkten, Kanten und Flächen V: Menge aller Knoten/Ecken E: Menge aller Kanten F: Menge aller Flächen Müssen alle Relationen gespeichert werden? NEIN vv V x V :Punkte sind benachbart ve V x E :Punkt begrenzt Kante vf V x F :Punkt ist Ecke von Fläche ev E x V :Kante hat Punkt als Ecke ee E x E :Kanten sind benachbart ee‘ E x E :Kanten sind benachbart und begrenzen die selbe Fläche ef E x F :Kante begrenzt Fläche fv F x V :Fläche stößt an Punkt fe F x E :Fläche stößt an Kante ff F x F :Flächen sind benachbart Thomas Faltermeier
Winged-Edge Struktur Speicherung von: ev, ef, ee‘ also Eckpunkte der Kanten Flächen die diese Kanten begrenzen Benachbarte Kanten mit gleicher benachbarter Fläche Zusätzliche Abspeicherung: Knotenliste mit Verweis auf die Kante, die er begrenzt Flächenliste mit Verweis auf eine Kante, die sie begrenzt Alle anderen Relationen lassen sich daraus berechnen Diese Struktur ist dynamisch und somit bei der Implementierung von Algorithmen von Nachteil Thomas Faltermeier
Half-Winged-Edge Struktur Es wird das selbe gespeichert wie bei der Winged-Edge Struktur mit Ausnahme der Relation ee‘ ee‘ wird durch die neue Relation ee‘‘ ersetzt: Speicherung der Kanten der entsprechenden Flächen, die e im Uhrzeigersinn folgen Bei diesem Beispiel als e2 und e3 Diese Struktur ist nun nicht mehr dynamisch und somit deutlich besser für die Implementierung geeignet Motivation: z.B. Laserscans sind verrauscht, glätten der Meshes verlangt betrachten der Nachbarecken, gute Datenstruktur , teures suchen fällt weg Thomas Faltermeier
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Thomas Faltermeier
Hardwarestruktur Hardware verwendet keine Polygone sondern die wesentlich einfacheren Dreiecke, da nur eine begrenzte Anzahl an Rechenregistern zur Verfügung steht Dreieck ist immer planar Polygone müssen daher in solche zerlegt werden Die einfachste Möglichkeit wäre es jedes Dreieck einzeln zu speichern, Nachteile Analog wie bei Meshes Lösung: Triangel Strips und Triangle Fans Dreiecke -> weniger Soderfälle Sonderfälle teuer Thomas Faltermeier
Hardwarestruktur Triangle Strips: Ausgehend von einem Dreieck Jedes neue Dreieck teil sich eine Kante mit dem vorhergehenden Vorteil: Es muss für jedes neue Dreieck nur ein einziger Punkt gespeichert werden Thomas Faltermeier
Hardwarestruktur Triangle Fans: Analog wie bei Strips Allerdings besitzen alle Dreiecke noch einen gemeinsamen Punkt Es entsteht ein Fächer aus Dreiecken Thomas Faltermeier
Gliederung Grundlagen Direkte Darstellungsmethoden Indirekte Darstellungsmethoden Topologie Hardwarestruktur Zusammenfassung Thomas Faltermeier
Zusammenfassung Es werden echte Körper dargestellt, da diese feste Eigenschaften besitzen Man stellt diesen entweder direkt oder indirekt dar, wobei jede Methode Vor- und Nachteile hat Nur mit der Darstellung lassen sich Algorithmen nicht effektiv implementieren, es muss die Topologie berücksichtigt werden Egal wie der Körper aufgebaut ist, auf Hardwareniveau muss alles auf Dreiecke zurückgeführt werden Thomas Faltermeier
Danke für die Aufmerksamkeit Ende Danke für die Aufmerksamkeit
Quellen Foley, Van Dam, Feiner, Hughes: Computer Graphics: Principles and Practice, Addison-Wesley, 2nd edition in C Griebel, Bungartz, Zenger: Computer Graphik, Vieweg Verlag http://de.wikipedia.org/wiki/Bild:Rotationskoerper_animatio n.gif , Macks , 24.01.2007 http://en.wikipedia.org/wiki/Image:Dolphin_triangle_mesh.p ng , chrschn , March 27, 2007 http://en.wikipedia.org/wiki/Image:Triangle_Strip.png, holder has irrevocably released all rights http://www.codesampler.com/d3dbook/chapter_05/chapter_ 05_files/image008.jpg, Kevin Harris, 2005 Thomas Faltermeier