34
Viewing: Sichtbarkeitsbestimmung

Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

Embed Size (px)

Citation preview

Page 1: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

Viewing: Sichtbarkeitsbestimmung

Page 2: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 2

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

Rendering: Einführung

Page 3: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 3

Die 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

Page 4: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 4

Modellierung der Geometrie

Transformation in Weltkoordinaten

(Aufbau der Szene)

Platzieren von Kamera

und Lichtquellen

Transformation in Kamerakoordinaten

(bestimmt durch Position undOrientierung der Kamera)

Entfernen verdeckter Rückseiten

Projektion (bestimmt durch

Attribute der Kamera)

Clipping gegen den Sichtkörper

Entfernen verdeckter Modellteile (HSR)

RasterungBeleuchtungsberechnung

und Shading

Die Rendering-PipelineVor 14 Tagen Letzte Woche

Letzte Woche

Heute

Page 5: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 5

Geometrische 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).

Page 6: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 6

Geometrische Modelle: Polygonale Modelle• Ein 3D-Objekt wird durch ein Gitter aus

polygonalen Facetten angenähert und beschrieben.

Original-ObjektOberflächen polygonale Oberfläche

EckpunkteKantenPolygone

Page 7: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 7

Geometrische Modelle: Polygonale ModelleUmwandlung 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 DreieckQualität 1: Darstellung der Grundfläche als 20-eck

Page 8: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 8

Unterschiedliche Polygonalisierungen eines Zylinders

Geometrische Modelle: Polygonale Modelle

Page 9: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 9

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.

Geometrische Modelle

Page 10: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 10

• Definition eines Polygons:1. 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 (i+1)-ten– Verbinde den letzten mit dem ersten zum Schließen des

PolygonsP1 (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.

Geometrische Modelle: Polygonale Modelle

x

y

z

Page 11: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 11

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

3. 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-4P2 1-5-8-4P3 1-2-6-5P4 2-6-7-3P5 4-3-7-8P6 5-6-7-8

Geometrische Modelle: Polygonale Modelle

Page 12: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 12

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

Geometrische Modelle: Polygonale Modelle

Page 13: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 13

Zusammenbau 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 Objekte

in einem globalen Koordi-natensystem, in dem auch Kameras und Lichter sowie Oberflächeneigenschaften der Objekte definiert werden

Page 14: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 14

Zusammenbau der Szene

Page 15: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 15

Zusammenbau 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

Page 16: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 16

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

Page 17: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 17

Kamerakoordinatensystem

• 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

Page 18: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 18

Kamerakoordinatensystem

Sichtkörper bei perspektivischer Projektion begrenzt durch 2 Ebenen (near und far)

Page 19: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 19

Kamerakoordinatensystem

• Abbildung von Weltkoordinaten (des Modells) in Kamerakoordinaten: Model-View-Matrix.

• Matrix in homogenen Koordinaten, wird mit Projektionsmatrix multipliziert.

Quelle: Angel (2000)

Page 20: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 20

Sichtbarkeitsbestimmung: 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.

Page 21: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 21

• 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 > 90°, dann zeigt die Normale (und damit die Außenseite des Polygons) vom Betrachter weg und das Polygon ist nicht sichtbar.

Np

V

Sichtbarkeitsbestimmung: Entfernen verdeckter Rückseiten

Page 22: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 22

Backface Culling (Eliminieren von Polygonen mit einer vom Betrachter abgewandten Normale)

Erster Schritt beim Entfernen verdeckter Polygone• Vorgehen:

– Bilde Skalarprodukt aus NpV

– Polygon ist prinzipiell sichtbar, wenn NpV>0 (und damit cos zwischen beiden Vektoren < 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.

Sichtbarkeitsbestimmung: Entfernen verdeckter Rückseiten

Page 23: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 23

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

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

Page 24: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 24

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

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

Page 25: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 25

Sichtbarkeitsbestimmung: 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.

Page 26: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 26

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/FlächenMö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.)

Page 27: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 27

Sichtbarkeitsbestimmung: 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

Page 28: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 28

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

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

Page 29: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 29

Algorithmus1. Fülle den Framebuffer mit der Hintergrundfarbe2. Fülle den z-Buffer mit der maximal möglichen Tiefe3. Zeichne alle Polygone nacheinander:

a) Bestimme für jeden Punkt des Polygons die Position im Bild, die Farbe und den Tiefenwert

b) Vergleiche den Tiefenwert an der Position mit dem, der dort im z-Buffer gespeichert ist

c) 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.

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

Page 30: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 30

Z-buffer

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

Page 31: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 31

Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen

OpenGL-Realisierung:

glutInitDisplayMode (GLUT_DOUBLE| GLUT_RGB| GLUT_DEPTH);

glEnable (GL_DEPTH_TEST);

glClear (GL_DEPTH_BUFFER_BIT);

Page 32: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 32

Sichtbarkeitsbestimmung: 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)

Page 33: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 33

Zusammenfassung

• 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

Page 34: Viewing: Sichtbarkeitsbestimmung. B. Preim AG Visualisierung Viewing2 Ziel: Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem

B. Preim AG Visualisierung Viewing 34

Ausblick: 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