Title: Viewing: Sichtbarkeitsbestimmung
1Viewing Sichtbarkeitsbestimmung
2Rendering Einführung
- Ziel Integration von Einzeltechniken in ein
System zur Bilderzeugung aus einem 3D-Modell. - Große Teile Viewing, Shading und Rasterisierung
- Bilderzeugung RenderingGegeben ein Modell in
3D-Koordinaten sowie eine Sicht auf die Szene
(Kameramodell). - Gesucht Pixelbild, das das gegebene Modell
realitätsnah darstellt.
3Die Rendering-Pipeline
- Bilderzeugung setzt sich aus verschiedenen
Teilprozessen zusammen, die aufeinander aufbauen. - Modellierung von 3D-Objekten
- Zusammenbau der Szene (Geometrie Licht
Kamera) - Entfernen nicht benötigter Modellteile
(Rückseiten und alle Objekte, die außerhalb des
Sichtkörpers liegen) - Projektion
- Entfernen von unsichtbaren Flächen (Verdeckungen)
- Beleuchtung (Shading)
- Rasterung
4Die Rendering-Pipeline
Letzte Woche
Vor 14 Tagen
Transformation in Kamerakoordinaten (bestimmt
durch Position undOrientierung der Kamera)
Transformation in Weltkoordinaten(Aufbau der
Szene)
Platzieren von Kamera und Lichtquellen
Modellierung der Geometrie
Letzte Woche
Projektion (bestimmt durchAttribute der Kamera)
Clipping gegen den Sichtkörper
Entfernen verdeckter Rückseiten
Heute
Entfernen verdeckter Modellteile (HSR)
Beleuchtungsberechnung und Shading
Rasterung
5Geometrische Modelle
- Ausgangspunkt für das Rendering
- Rechnerinterne Darstellung der Oberfläche
- Verschiedene Modellierungsverfahren
- Explizite Repräsentation
- Angabe von Eckpunkten, Flächen, etc.
- Implizite / analytische Repräsentation
- Angabe einer mathematischen Beschreibung (z.B.
Kugel mit Radius r x²y²z²-r² 0) - Angabe eines Algorithmus
- Graphik I Konzentration auf polygonale
Oberflächenmodelle - Analytische und implizite Darstellungen lassen
sich in explizite Darstellungen umwandeln
(Polygonalisieren).
6Geometrische Modelle Polygonale Modelle
- Ein 3D-Objekt wird durch ein Gitter aus
polygonalen Facetten angenähert und beschrieben.
Eckpunkte Kanten Polygone
Original-Objekt
Oberflächen
polygonale Oberfläche
7Geometrische Modelle Polygonale Modelle
- Umwandlung von analytischen/impliziten
Beschreibungen in polygonale Modelle ist mit
einem Verlust an Genauigkeit verbunden. - Beispiele
- Polygonalisierung von Kugeln, Zylindern,
Bezierkurven, - Kompromiss zwischen dem Wunsch nach hoher
Genauigkeit (Qualität) und kleinen Modellen
(Geschwindigkeit) - Kompromiss ist oft einstellbar für den
Anwendungsentwickler durch Angabe eines Wertes
zwischen 0 und 1 (höchstmögliche Qualität) - Polygonalisierung von Zylindern
- Qualität 0 Darstellung der Grundfläche als
Dreieck - Qualität 1 Darstellung der Grundfläche als
20-eck
8Geometrische Modelle Polygonale Modelle
- Unterschiedliche Polygonalisierungen eines
Zylinders
9Geometrische Modelle
- Vorteile von polygonalen Modellen
- Einheitliche Behandlung aller geometrischer
Modelle - Relativ einfache Algorithmen ? daher
Implementierung in Hardware möglich - Wichtig Polygone müssen in einer Ebene liegen
(z.B. um zu bestimmen, was im Inneren liegt). Bei
Drei-ecken immer der Fall. Daher intern
Triangulierung.
10Geometrische Modelle Polygonale Modelle
- Definition eines Polygons
- Angabe der Koordinaten der Eckpunkte
- x-, y-, z-Koordinatentripel
- Verbindung der Eckpunkte zu einem Polygon wird
implizit hergestellt - Verbinde den i-ten Punkt mit dem (i1)-ten
- Verbinde den letzten mit dem ersten zum Schließen
des Polygons
P1 (0,0,0)-(1,0,0)- (1,1,0)- (0,1,0) P2
(0,0,0)-(0,0,-1)- (0,1,-1)- (0,1,0) P3
(0,0,0)-(1,0,0)- (1,0,-1)- (0,0,-1) P4
(1,0,0)-(1,0,-1)- (1,1,-1)- (1,1,0) P5
(0,1,0)-(1,1,0)- (1,1,-1)- (0,1,-1) P6
(0,0,-1)-(1,0,-1)-(1,1,-1)- (0,1,-1) P1 und P6
liegen in der xy-Ebene. P2 und P4 liegen in der
yz-Ebene. P3 und P5 liegen in der xz-Ebene.
y
x
z
11Geometrische Modelle Polygonale Modelle
- Auflistung aller Eckpunkte (vertices) in einer
Liste - Verbindung wird angegeben durch eine Liste von
Indizes (Kanten definiert als indizierte
Eckpunktliste) -
- Vorteil kompakte Speicherung (keine Redundanz),
Projektion/Transformation des Modells Iteration
über alle Eckpunkte - Weitere komplexere Modellierungstechniken
Nr. Koord.
1 (0,0,0)
2 (1,0,0)
3 (1,1,0)
4 (0,1,0)
5 (0,0,-1)
6 (1,0,-1)
7 (1,1,-1)
8 (0,1,-1)
P1 1-2-3-4 P2 1-5-8-4 P3 1-2-6-5 P4
2-6-7-3 P5 4-3-7-8 P6 5-6-7-8
12Geometrische Modelle Polygonale Modelle
- Vorteile
- Einfache Darstellung der Objekte
- Einfache und einheitliche Handhabung bei
Berechnungen - Weit verbreitet kleinster gemeinsamer Nenner
bei 3D-Modellen - Nachteile
- Polygonale Modelle approximieren die Oberfläche
eines runden Objektes. - Je genauer diese Approximation sein soll, um so
mehr Polygone werden benötigt speicheraufwändig
13Zusammenbau der Szene
- Bisher sind Objekte in lokalen Koordinaten
gegeben, d.h. jedes Objekt hat sein eigenes
Koordinatensystem. - Berechnungen, die mehrere Objekte einbeziehen,
sind schwierig - Transformation in ein gemeinsames
Koordinatensystem notwendig - Weltkoordinaten
- Platzieren der Objektein einem globalen
Koordi-natensystem, in dem auch Kameras und
Lichter sowie Oberflächeneigenschaften der
Objekte definiert werden
14Zusammenbau der Szene
15Zusammenbau der Szene
- Wie entsteht ein größeres geometrisches Modell?
- Durch explizite Modellierung verschiedener Teile
(oft durch mehrere Personen parallel
durchgeführt) - Durch extensive Wiederverwendung von Teilen
(auch aus anderen Modellen) - Wiederverwendung durch Kopieren, Verschieben,
Rotieren von Modellteilen (Beispiele Räder und
Türgriffe an Autos, Fenster, Türen an Gebäuden,
) - Repräsentation großer Modelle
- Mehrfach verwendete Geometrie oft nur einmalig
repräsentiert zusammen mit mehreren
Transformationen
16Definition Kamera(s) und Lichtquelle(n)
- Kameramodell
- Position und Richtung
- die Abbildung bestimmende Parameter
- Lichtquellen (LQ)
- Üblich Punktlichtquellen (LQ ohne Ausdehnung,
die in alle Richtungen gleichstark abstrahlen)
vereinfachtes Modell - Position
- Farbe des ausgestrahlten Lichtes
- Helligkeit
- Weitere Typen von Lichtquellen möglich
- Flächige LQ
- Gerichtete LQ (parallele Strahlen in eine
Richtung) - Spotlights (Gerichtete LQ mit Öffnungswinkel)
17Kamerakoordinatensystem
- Koordinatensystem, bei dem die Kamera im Ursprung
steht und entlang der (negativen) z-Achse
ausgerichtet ist. - Definition des Sichtkörpers
- Einige Operationen lassen sich hier sehr einfach
ausführen, daher dieser Zwischenschritt - Entfernen verdeckter Rückseiten
- Clipping gegen den Sichtkörper
18Kamerakoordinatensystem
Sichtkörper bei perspektivischer Projektion
begrenzt durch 2 Ebenen (near und far)
19Kamerakoordinatensystem
- Abbildung von Weltkoordinaten (des Modells) in
Kamerakoordinaten Model-View-Matrix. - Matrix in homogenen Koordinaten, wird mit
Projektionsmatrix multipliziert.
Quelle Angel (2000)
20Sichtbarkeitsbestimmung Entfernen verdeckter
Rückseiten
- Polygone entfernen, die vom Betrachter wegzeigen
(Rückseiten), da sie mit Sicherheit nicht
sichtbar sind (engl. back face culling) - Generelles CG-Prinzip Versuche mit einem
schnellen (einfachen) Test eine aufwändigere
Berechnung in vielen Fällen einzusparen.
21Sichtbarkeitsbestimmung Entfernen verdeckter
Rückseiten
- Einfacher Test auf Sichtbarkeit eines Polygons
mit Hilfe von - Polygonnormale Np (nach außen zeigend)
- Vektor v(iew) vom Polygon zum Betrachterstandpunkt
- Ist der Winkel gt 90, dann zeigt die Normale (und
damit die Außenseite des Polygons) vom Betrachter
weg und das Polygon ist nicht sichtbar.
Np
V
22Sichtbarkeitsbestimmung Entfernen verdeckter
Rückseiten
- Backface Culling (Eliminieren von Polygonen mit
einer vom Betrachter abgewandten Normale) - Erster Schritt beim Entfernen verdeckter Polygone
- Vorgehen
- Bilde Skalarprodukt aus Np?V
- Polygon ist prinzipiell sichtbar, wenn Np?Vgt0
(und damit cos zwischen beiden Vektoren lt
90 Grad. Vorzeichentest ist schneller als
Winkelberechnung) - wichtig Vektoren vorher normalisieren
- Einfacher Test, weil Betrachterstandpunkt im
Ursprung des Kamerakoordinatensystems - Back face culling entfernt 50 aller Polygone.
23Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Bestimmen der Teile des Modells, die nicht von
anderen Teilen des Modells verdeckt werden (oder
der Teile, die verdeckt werden) (Hidden Line bzw.
Hidden Surface Removal)
24Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Viele Verfahren zur Lösung der Aufgabe
- Unterschiedliche Herangehensweise
- mit Objektgenauigkeit (d.h. analytische
Verfahren in 3D) - mit Pixelgenauigkeit (d.h. Verfahren in 2D)
- Unterschiedliche Komplexität
- Unterschiedliche Algorithmenklassen
- Keine detaillierte Behandlung hier, nur
depth-sort und z-Buffer-Algorithmus (später)
25Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Aus dem Kamarakoordinatensystem werden die
Koordinaten in der (2D-)Bildebene berechnet - Projektionstransformation (Vorlesung 6)
- Änderung zu den bisher behandelten
Transformationen z-Werte bleiben erhalten, so
dass jeder Objektpunkt einen Tiefenwert besitzt. - Tiefenwerte werden für das Entfernen verdeckter
Teile des Modelles beim z-Buffer-Algorithmus
benötigt.
26Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Mögliche Konstellationen zwischen den Polygonen A
und B - B vor A und Projektion B und A überlappt (B
verdeckt A teilweise) - A vor B und Projektion A und B überlappt (A
verdeckt B teilweise) - Projektion von A und B überlappt nicht (beide
komplett sichtbar) - Ein Polygon vor dem anderen und Projektion des
vorderen umschließt Projektion des hinteren
(hinteres Polygon komplett verdeckt) - Projektion des vorderen Polygones komplett in der
Projektion des hinteren enthalten (vorderes
Polygon wird über das hintere gezeichnet.)
27Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Depth-Sort (Objektbasierter Algorithmus)
- Sortieren der Polygone nach ihrer Entfernung zum
cop - Zeichnen von hinten nach vorn
- Problem Bei Polygonen, bei denen sich die
Abstände zum cop und die Projektion überlappen,
ist die Zeichenreihenfolge unklar. - Lösung Teile solche Polygone solange bis
Polygonteile entstehen, die sich eindeutig
sortieren lassen. Dreiecke Schwerpunkt
bilden 3 kleinere Dreiecke konstruieren
28Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Z-Buffer-Algorithmus
- Effizienter Algorithmus zum Erkennen der
sichtbaren Teile einer Szene, der in
Bildschirmkoordinaten arbeitet (besser im
Bildraum) - Ist in Hardware implementiert (NVidia, ATI, ).
- Voraussetzung Alle Polygone liegen transformiert
vor, wobei die Bildschirmkoordinaten eine
trans-formierte z-Koordinate besitzen, die die
Tiefe angibt. - Technische Voraussetzung zwei Bitmaps
- Framebuffer enthält das eigentliche Bild
- Z-Buffer enthält Tiefenwerte
29Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Algorithmus
- Fülle den Framebuffer mit der Hintergrundfarbe
- Fülle den z-Buffer mit der maximal möglichen
Tiefe - Zeichne alle Polygone nacheinander
- Bestimme für jeden Punkt des Polygons die
Position im Bild, die Farbe und den Tiefenwert - Vergleiche den Tiefenwert an der Position mit
dem, der dort im z-Buffer gespeichert ist - Wenn der Tiefenwert des Polygonpunktes kleiner
ist (weiter vorne), dann zeichne die Farbe in den
Framebuffer und setze den Tiefenwert im z-Buffer
auf den neuen Tiefenwert, sonst wird nichts
verändert - Was heißt jeder Punkt des Polygons? Polygon
wird abgetastet Berechnung wird für diskrete
Punkte des Polygons durchgeführt. Abtastrate
hängt von der Größe des projizierten Polygones ab.
30Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
Z-buffer
31Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- OpenGL-Realisierung
- glutInitDisplayMode (GLUT_DOUBLE GLUT_RGB
GLUT_DEPTH) - glEnable (GL_DEPTH_TEST)
- glClear (GL_DEPTH_BUFFER_BIT)
32Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
- Probleme bei der Sichtbarkeitsbestimmung
- Zyklisch überlappende Polygone
- Ein Polygon zersticht ein anderes (engl.
Piercing). - Lösung Teilen in solche Polygone, die sich
eindeutig in Tiefenrichtung sortieren lassen
(schwierig)
Quelle Angel (2000)
33Zusammenfassung
- Entfernen von Rückseiten der Polygone
(Normale und Vektor zur Kamera betrachten) - Entfernen verdeckter Flächen(teile) durch
bildbasierte oder objektbasierte Algorithmen - Beispiele
- Objektbasiert Sortierung der Polygone nach
Abstand zur Kamera (Sortierreihenfolge nicht
immer eindeutig) - Bildbasiert z-Buffer
34Ausblick Rasterung und Shading
- Nach der Projektion sind die Eckpunkte der
Polygone in Bildschirmkoordinaten gegeben. - Noch zu tun
- Umsetzung dieser Koordinaten auf Pixelpositionen
- Bestimmen der entsprechenden Farbe des Pixels
- Zeichnen der Objekte Rasterung
- Farbe des Pixels ist abhängig von
- Einfallendem Licht in der 3D-Szene
- Material und Oberflächeneigenschaft der Objekte
- Betrachterstandpunkt
- Bestimmen der Farbe an einem Punkt im 3D-Modell
über Beleuchtungsmodelle, Umsetzen auf
Pixelfarbe Shading