4. Sichtbarkeitsverfahren

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Der k-d-Baum Richard Göbel.
3. 3D-Betrachtungstransformationen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
• • • • • 3.2 Die projektive Erweiterung des E³
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Durchlaufen eines Binärbaumes
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Verbindet man das räumlich abzubildende Objekt mit
5.2 Schattierungsverfahren
Phong Shading (Normaleninterpolation)
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmen und Datenstrukturen
Geometrisches Divide and Conquer
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Minimum Spanning Tree: MST
Theorie und Praxis geometrischer Algorithmen
BSP Binary Space Partitioning
FHP - Fachbereich Bauingenieurwesen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
2. Die rekursive Datenstruktur Baum 2
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Geometrie : Rekonstruktion
Medizinische Visualisierung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Routenplanung querfeldein - Geometric Route Planning
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Seminar im Fach Geoinformation IV
Diskrete Mathematik II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind Polyeder, d. h. Körper mit ebenen Begrenzungsflächen, die im Folgenden als Polygone bezeichnet werden Polygon Bildraum-Verfahren: entscheiden Sichtbarkeit für jedes Pixel des Geräte KOS for each pixel do begin finde das dem Betrachter am nächsten gelegene Objekt, welches vom Projektionsstrahl durch das Pixel getroffen wird färbe das Pixel in der entsprechenden Farbe end

Objektraum-Verfahren: entscheiden Sichtbarkeit für Objekte im WKOS for each object do begin finde die unverdeckten Teilflächen des Objektes bilde die Teilflächen ab end Genauigkeit: Objektraum-Verfahren: Maschinengenauigkeit Bildraum-Verahren: Geräteauflösung  Wiederholung des Verfahrens bei zoom naiver Komplexitätsvergleich: Objektraum-Verfahren: O(n²) n = # Polygone ca.1-200 000 Bildraum-Verfahren: O(n · N) N = # Pixel ca. 1024 x 1024 ist wenig aussagekräftig, da die einzelnen Schritte des Objektraum-Verfahrens im Allg. zeitaufwendiger (und schwieriger zu implementieren) Bei Bildraumverfahren lassen sich Kohärenzeigenschaften ausnutzen.

Entfernen der Rückseiten (Back-Face-Removal) Technik für geschlossene Körper. Bei konvexem Körper ist dies die einzige notwendige Operation. Generell: Vorverarbeitung zur Reduzierung der Szenen- komplexität (ca. 50 %) Ebene Begrenzungsflächen der Polyeder sind durch Normalen konsistent orientiert, z.B. durch äußere Normale • R N1 N2 Blickrichtungstest: < N, R > > 0  N gehört zu Rückseite Parallelprojektion: R ist Projektionsrichtung Zentralprojektion: R ist Vektor vom Augpunkt auf beliebigen Polygonpunkt

Tiefenspeicher-Algorithmus (z-buffer) Idee: Speichere für jedes Pixel die Tiefe des Objektes, das dem Betrachter in diesem Punkt am nächsten liegt Tiefe im SichtKOS: (neg.)z-Koordinate Voraussetzung: Speicher von der Größe des Bildwieder- holspeichers (frame buffer) Algorithmus: 1. Setze den frame buffer auf die Hintergrundfarbe Setze den z-buffer auf den min. z-Wert 2. Für jedes Polygon Fi scan konvertiere Fi für jedes Pixel (x, y) von Fi • Berechne die Farbe c und die Tiefe z • Ist z(x, y) > zbuffer(x, y), dann wird der Farbwert c an der Stelle (x, y) im frame buffer eingetragen und zbuffer(x, y) = z(x, y) gesetzt

Prioritätslisten-Verfahren Prinzip: Erzeugung einer Ordnung der abzubildenden Objekte derart, dass ein korrektes Bild entsteht, wenn die Szene gemäß dieser Ordnung darge- stellt wird Tiefenüberlappung: (a) Ordnung möglich (b) keine Ordnung möglich (zyklische Überlappung, Durchdringung)  Zerlegung der Polygone Hybride Verfahren: Tiefenvergleich, Zerlegung sind Objektraum-Operationen Überschreiben verdeckter Polygone durch Scankonver- tierung ist Bildraum-Operation (Diese Op. kann für jede Auflösung wiederholt werden)

Tiefensortierung (Newell et. al '72) Vorsortierung der Polygone nach ihren kleinsten z-Werten Abarbeitung der Polygonliste beginnend mit der entferntesten Fläche P. (*) Überlappt sich P in der Tiefe mit einem anderen Polygon? Nein: Scankonvertiere P Ja: mit Polygon Q Lassen sich P und Q trennen? Ja: fahre fort mit (*) Nein: Ist P als bewegt markiert? Ja: zerlege P an der Ebene von Q in zwei Teile beginne erneut mit dem entfernteren Teil von P Nein: setze Q vor P in die Liste, markiere Q als bewegt, beginne erneut mit Q

erfolgreich, wenn Q nicht durch P verdeckt werden kann Trennungstests: erfolgreich, wenn Q nicht durch P verdeckt werden kann 1. x-Ausdehnungen von P und Q überlappen nicht 2. y-Ausdehnungen von P und Q überlappen nicht 3. P liegt hinter der Ebene durch Q 4. Q liegt vor der Ebene durch P 5. Projektionen von P und Q überlappen sich nicht Bsp.: (a) x 3 ist wahr P Q z x 3 ist falsch 4 ist wahr P Q z

BSP-Baum-Verfahren (Fuchs et. al '80) binary space partitioning tree erlaubt die Berechnung der Sichtbarkeit einer statischen Szene von beliebigem Blick- punkt zeit- und speicherintensive Vorverarbeitung lineares Darstellungsverfahren Anwendung: Rundflug um statisches Objekt Aufbau des BSP-Baums: Wurzel: beliebiges Polygon P der Szene Teile den Raum durch die Ebene von P in zwei Halb- räume H1, H2 H1 enthalte die Normale von P, so dass die Polygone in H1 vor P liegen; die Polygone von H2 hinter P (relativ zur Normalen) Polygone, die auf beiden Seiten der Ebene liegen, werden in zwei Teilpolygone aufgespalten Wähle ein Polygon aus H1 bzw. H2 als linken bzw. rechten Sohn von P. Zerlege die Teilräume entsprechend der Ebenen dieser Polygone. Fahre rekursiv fort bis jeder Knoten nur ein einziges Polygon enthält

Blickrichtungsunabhängigkeit des BSP-Baumes Für jeden beliebigen Blickpunkt kann ein BSP-Baum in einer modifizierten symmetrischen Reihenfolge durchlaufen werden, so dass sich eine korrekt geordnete Polygonliste ergibt Prinzip: liegt der Blickpunkt bez. eines Polygons im Halb- raum H1 (H2), so müssen zunächst die Polygone in H2 (H1), dann die Wurzel und schließlich die Poly- gone in H1 (H2) dargestellt werden  BP

rekursive Anwendung dieses Prinzips:

Bsp.: Durchläufe durch BSP-Baum für zwei verschiedene Projektionsrichtungen 3 f b 2 4 f b b 5a 1 5b Entfernung der Rückseiten: Unterdrücke die Polygone, die den Blickpunkt im rückseitigen Halbraum besitzen

Bem.: (i) BSP-Baum ist hilfreich für das 3D-Clipping: Jedes Polygon, dessen Ebene das Sichtvolumen nicht schneidet, besitzt einen Teilbaum, der voll- ständig außerhalb des Sichtvolumens liegt (ii) Wahl der Wurzeln der Teilbäume: Wähle idealerweise das Polygon, welches die ge- ringste Anzahl von Zerlegungen seiner sämtlichen Nachfolger induziert Praxis: Wähle unter wenigen (5 - 6) Polygonen dasjenige, welches die geringste Anzahl von Zer- legungen seiner direkten Nachfolger induziert (Fuchs 83) (iii) Im Gegensatz zur Tiefensortierung erfolgt die Polygonzerlegung in Vorverarbeitung, die nur wiederholt werden muss bei Änderung der dar- zustellenden Welt. Anzahl der Polygonzerlegung ist i. Allg. größer als bei der Tiefensortierung.

Scan-line Algorithmus Prinzip: Entscheide Sichtbarkeit für jede scan-line des Bildes zentrale Datenstruktur: active-edge table (AET) enthält für die aktuelle scan-line die Menge der geschnittenen Kanten und die x-Koordinaten der Schnittpunkte Ordnung der Kanten: aufsteigende x-Koordinate gerundete x-Koordinaten bestimmen scan-line Abschnitte für die die Sichtbarkeit zu klären ist. Aktualisierung der AET von y zu y+1: Kanten aus AET (y) mit ymax = y werden entfernt Kanten mit ymin = y+1 werden eingefügt neue Schnittpunkte werden bestimmt Dabei gilt für eine Kante K  AET(y)  AET(y+1) und Steigung m xneu = xalt + | 1/m |

Datenstruktur der gesamten Kantenmenge Edge Table (ET) enthält die nicht-horizontalen Kanten sämtlicher Polygone nach Projektion auf die Bildebene Tabelle ist sortiert nach den minimalen y-Koordinaten der Kantenendpunkte (ymin) Kanten mit gleichem ymin befinden sich sortiert nach auf- steigender x-Koordinate des unteren Endpunktes (mit ymin) an gleichem Tabellenplatz Tabelleneinträge enthalten für jede Kante 1. Die x-Koordinate des unteren Endpunktes (mit ymin) 2. Die y-Koordinate des anderen Endpunktes (ymax) 3. x = 1/m (inverse Steigung) 4. Polygon Identifikationsnr. (besagt, zu welchem Polygon Kante gehört)

Polygon Table (PT) 1. ID-Nr. 2. Koeffizienten der Ebenengleichung 3. Farbinformation (Schattierung) 4. Boolean Flag (wird mit FALSE initialisiert und wird im Algorithmus auf TRUE gesetzt, wenn eine Kante dieses Polygons verarbeitet wird)

Bsp.: ET für ein Polygon

AET (9) und AET (10)

Ablauf des Verfahrens für nicht-durchdringende Polygone scan-line : AET enthält Kanten AB, AC Bei Verarbeitung von AB wird das in-out flag von ABC auf TRUE gesetzt Da nur ein Polygon beteiligt ist, wird der scan-line- Abschnitt vom Schnittpunkt P1 mit AB bis zum Schnittpunkt P2 mit AC entsprechend der Farbinfor- mation von ABC schattiert. Da AC zum selben Polygon gehört wie AB, verlässt die scan-line bei P2 das Polygon; das flag wird somit auf FALSE gesetzt Da AC die letzte Kante der AET ist, die scan-line bear- beitet

scan-line : AET enthält AB, AC, FD, FE Ablauf ähnlich wie , da jeweils nur ein Polygon beteiligt scan-line : AET enthält AB, DE, CB, FE Bei Verarbeitung von AB wird flag von ABC auf TRUE gesetzt scan-line-Abschnitte von Schnittpunkt mit AB bis Schnittpunkt mit DE wird gemäß der Farbinformationen von ABC schattiert Bei Verarbeitung von DE wird zusätzlich das flag von DEF auf TRUE gesetzt Sichtbarkeitsentscheidung: Berechnung des Tiefenwerts z aus der Ebenengleichung von ABC und DEF für y =  und x aus dem AET-Eintrag von DE schattiere von SP mit DE bis SP mit CB gemäß der Sichtbarkeitsentscheidung bei Verarbeitung von CB wird flag von ABC FALSE, so dass nur noch ein Polygon beteiligt ist

scan-line  + 1: AET () und AET (+1) enthalten dieselben Kanten in derselben Ordnung Tiefenkohärenzeigenschaft nach Romney: Bei nicht durchdringenden Polygonen gilt in dieser Situation die Invarianz der Sichtbarkeiten, so dass keine neue Tiefeninformation berechnet werden muss Bem.: Ordnung der Kanten ist wesentlich für Gültigkeit der Tiefenkohärenz Bem.: (ii) Tiefenberechnungen erübrigen sich, wenn die scan-line ein verdecktes Polygon verlässt. Sie müssen somit nur durchgeführt werden, wenn die scan-line ein verdecken- des Polygon verlässt