7. Entfernen verdeckter Kanten und Flächen Flashcards
1. Z-Puffer Algorithmus 2. Scanline Algorithmus 3. Bereichsunterteilungsalgorithmen (Quadtrees) 4. Leistungsfähigkeit der Algorithmen (6 cards)
Wieso ist das Entfernen verdeckter Kanten und Flächen erforderlich?
-> für eine realitätsnahe bzw. eindeutige Darstellung von Objekten ist die Berücksichtigung der Tiefeninformation erforderlich
Wann findet die Berechnung und Entfernung von verdeckten Kanten statt?
->findet vor der Projektion auf die 2D-Ebene statt, da nach der Projektion keine Tiefeninformationen mehr vorhanden sind
Nenne die beiden Algorithmen, zur Bestimmung der vorne liegenden Objekte.
- > Z-Puffer-Algorithmus
- > Scan-Line Algorithmus
Erkläre den Z-Puffer Algorithmus.
Wie wird er berechnet?
Welche Vor- und Nachteile hat er? (2, 1)
Z-Puffer Algorithmus:
________________
Bildwiederholspeicher: enthält die aktuellen Farbwerte
Z-Puffer: enthält für jedes Pixel den z-Wert (Tiefe) des in diesem Punkt dem Betrachter am nächsten liegenden Objekts
_________________
-> z-Puffer Z wird mit 0 initialisiert
(z-Wert der hinteren Kappungsebene)
- > Der Bildwiederholspeicher wird mit der Hintergrundfarbe initialisiert
- > jedes Polygon wird nun gerastert (Reihenfolge dabei beliebig)
- > wenn der aktuell gerasterte Punkt des Polygons näher am Betrachter liegt als der Punkt, dessen Entfernung im Z-Puffer eingetragen ist, werden die Werte im Z-Puffer und im Bildwiederholspeicher durch die Entfernung beziehungsweise die Farbe des aktuellen Polygons ersetzt
- > am Ende enthält der Bildwiederholspeicher die Abbildung der sichtbaren Flächen
-> Z-Puffer + Bildwiederholspeicher = 2-Dimensionales Bild
______________
Berechnung:
Ausnutzung der Kohärenz-Eigenschaft:
-> die Berechnung der Tiefenwerte benachbarter Pixel geschieht durch Addition zweier konstanter Terme
______________
Vorteile:
->Einfache Implementierung
->Ausführungszeit ist unabhängig von der Anzahl der Polygone
(da Anzahl der Pixel je Polygon abnimmt, wenn die Anzahl der Polygone im Bildraum steigt)
________________
Nachteile:
->benötigt genügend Speicherplatz auf der Grafikkarte
Erkläre den Scan-Line Algorithmus.
Wie wird er berechnet?
Welches Problem kann dabei auftreten?
Welchen Vor- und Nachteil hat er? (1, 1)
Scan-Line Algorithmus
______________
- > Bild wird zeilenweise durchgegangen
- > Vorsortierung aller Polygone nach den größten y-Werten
- > für jede Rasterzeile wird eine Liste der aktiven Polygone sowie eine Liste der nach x-Werten aufsteigend sortierten Polygonkanten erstellt
- > Datenstruktur einer Polygonkante verweist auf das zugehörige Polygon
-> Datenstruktur eines Polygons enthält eine Betrachtungsflagge
=> gibt an, ob die momentane Rasterzeilen-Position innerhalb oder außerhalb der Polygonfläche liegt
=> zu Beginn einer Rasterzeile: alle Flaggen auf außerhalb gesetzt
-> bei jedem Schnitt einer Polygokante mit der Rasterzeile wird die entsprechende Flagge der Polygonfläche invertiert
(außerhalb -> innerhalb -> außerhalb)
________________
Für einen Rasterzeilen-Abschnitt zwischen zwei aufeinanderfolgenden Polygonkantenschnitten => 2 Möglichkeiten:
- nur 1 Betrachtungsflagge ist gesetzt (AB bzw. CD):
=> in diesem Fall war nur ein Polygon im „Span“ und dieses ist sichtbar
- > die Farbinformation der Pixel wird von der zugehörigen Polygonfläche übernommen
2. mehrere Betrachtungsflaggen sind gesetzt (DE):
=> aus den Flächengleichungen der Polygone wird das sichtbare Polygon berechnet und deren Farbinformation übernommen
_______________
Berechnung:
Ausnutzung der Kohärenzeigenschaft
->Ändert sich die Reihenfolge der Kanten in der nächsten Zeile der Liste nicht, müssen keine
neuen Berechnungen zur Sichtbarkeit durchgeführt werden
_______________
Problem:
=> Durchdringungen
->bei Durchdringungen kann sich trotz gleichbleibender Reihenfolge der Polygonkanten die Sichtbarkeit ändern
->Durchdringungstest unterteilt, wenn nötig den Span nochmal in weitere Spans
_______________
Vorteil:
-> geringer Speicherplatzbedarf
________________
Nachteil:
->Ausführungszeit steigt mit steigender Polygonanzahl
Leistungsfähigkeit der Algorithmen
Welcher ist am optimalsten?
Leistungsfähigkeit der Algorithmen
- > es gibt keinen optimalen Algorithmus
- > Ausführungszeit ist stark abhängig von der Anzahl und der Lage der Polygone in der Szene, mit Ausnahme des z-Puffer Algorithmus