21
chtbarkeitsverfahren hren zur Entfernung verdeckter Kanten oder F n line Algorithmen / hidden surface Algori lkörper sind Polyeder, d. h. Körper mit eben nzungsflächen, die im Folgenden als Polygone chnet werden Polygon -Verfahren: den Sichtbarkeit für jedes Pixel des Geräte pixel do gin finde das dem Betrachter am nächsten gel Objekt, welches vom Projektionsstrahl du Pixel getroffen wird färbe das Pixel in der entsprechenden Fa d

4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Embed Size (px)

Citation preview

Page 1: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

4. Sichtbarkeitsverfahren

Verfahren zur Entfernung verdeckter Kanten oder Flächenhidden line Algorithmen / hidden surface Algorithmen

Modellkörper sind Polyeder, d. h. Körper mit ebenen Begrenzungsflächen, die im Folgenden als Polygonebezeichnet 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

Page 2: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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: MaschinengenauigkeitBildraum-Verahren: Geräteauflösung Wiederholung des Verfahrens bei zoom

naiver Komplexitätsvergleich:Objektraum-Verfahren: O(n²) n = # Polygone ca.1-200 000Bildraum-Verfahren: O(n · N) N = # Pixel ca. 1024 x 1024

ist wenig aussagekräftig, da die einzelnen Schritte des Objektraum-Verfahrens im Allg. zeitaufwendiger (undschwieriger zu implementieren)Bei Bildraumverfahren lassen sich Kohärenzeigenschaftenausnutzen.

Page 3: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Entfernen der Rückseiten (Back-Face-Removal)Technik für geschlossene Körper. Bei konvexem Körperist dies die einzige notwendige Operation. Generell: Vorverarbeitung zur Reduzierung der Szenen-komplexität (ca. 50 %)

Ebene Begrenzungsflächen der Polyeder sind durchNormalen konsistent orientiert, z.B. durch äußere Normale

••R

N1 N2

Blickrichtungstest:

< N, R > > 0 N gehört zu Rückseite

Parallelprojektion: R ist ProjektionsrichtungZentralprojektion: R ist Vektor vom Augpunkt auf beliebigen Polygonpunkt

Page 4: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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

Page 5: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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)

Page 6: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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

Page 7: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Trennungstests:

erfolgreich, wenn Q nicht durch P verdeckt werdenkann

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

z

P

Q

3 ist wahr

3 ist falsch4 ist wahrP

Q

x

z

Page 8: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

BSP-Baum-Verfahren (Fuchs et. al '80)

binary space partitioning tree erlaubt die Berechnung derSichtbarkeit einer statischen Szene von beliebigem Blick-punkt

zeit- und speicherintensive Vorverarbeitunglineares 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

Page 9: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind
Page 10: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Blickrichtungsunabhängigkeit des BSP-Baumes

Für jeden beliebigen Blickpunkt kann ein BSP-Baum ineiner modifizierten symmetrischen Reihenfolge durchlaufenwerden, so dass sich eine korrekt geordnete Polygonlisteergibt

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

Page 11: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

rekursive Anwendung dieses Prinzips:

Page 12: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Bsp.: Durchläufe durch BSP-Baum für zwei verschiedene Projektionsrichtungen

Entfernung der Rückseiten: Unterdrücke die Polygone,die den Blickpunkt im rückseitigen Halbraum besitzen

3

42

15a 5b

b b

b

f

f

Page 13: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Bem.:

(i) BSP-Baum ist hilfreich für das 3D-Clipping:Jedes Polygon, dessen Ebene das Sichtvolumennicht 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ämtlichenNachfolger induziertPraxis: Wähle unter wenigen (5 - 6) Polygonendasjenige, welches die geringste Anzahl von Zer-legungen seiner direkten Nachfolger induziert(Fuchs 83)

(iii) Im Gegensatz zur Tiefensortierung erfolgt die Polygonzerlegung in Vorverarbeitung, die nurwiederholt werden muss bei Änderung der dar-zustellenden Welt. Anzahl der Polygonzerlegungist i. Allg. größer als bei der Tiefensortierung.

Page 14: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Scan-line Algorithmus

Prinzip: Entscheide Sichtbarkeit für jede scan-line desBildes

zentrale Datenstruktur: active-edge table (AET)enthält für die aktuelle scan-line die Menge der geschnittenen Kanten und die x-Koordinaten derSchnittpunkteOrdnung der Kanten: aufsteigende x-Koordinategerundete x-Koordinaten bestimmen scan-line Abschnittefü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 |

Page 15: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Datenstruktur der gesamten Kantenmenge

Edge Table (ET)

enthält die nicht-horizontalen Kanten sämtlicher Polygonenach Projektion auf die Bildebene

Tabelle ist sortiert nach den minimalen y-Koordinaten derKantenendpunkte (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)

Page 16: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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)

Page 17: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Bsp.: ET für ein Polygon

Page 18: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

AET (9) und AET (10)

Page 19: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

Ablauf des Verfahrens für nicht-durchdringendePolygone

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

Page 20: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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

Page 21: 4. Sichtbarkeitsverfahren Verfahren zur Entfernung verdeckter Kanten oder Flächen hidden line Algorithmen / hidden surface Algorithmen Modellkörper sind

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