Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

4. Sichtbarkeitsverfahren

Ähnliche Präsentationen


Präsentation zum Thema: "4. Sichtbarkeitsverfahren"—  Präsentation transkript:

1 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

2 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 Bildraum-Verfahren: O(n · N) N = # Pixel ca 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.

3 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 > >  N gehört zu Rückseite Parallelprojektion: R ist Projektionsrichtung Zentralprojektion: R ist Vektor vom Augpunkt auf beliebigen Polygonpunkt

4 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

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

6 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

7 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

8 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

9

10 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

11 rekursive Anwendung dieses Prinzips:

12 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

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

14 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 |

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

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

17 Bsp.: ET für ein Polygon

18 AET (9) und AET (10)

19 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

20 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

21 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


Herunterladen ppt "4. Sichtbarkeitsverfahren"

Ähnliche Präsentationen


Google-Anzeigen