Viewing: Sichtbarkeitsbestimmung - PowerPoint PPT Presentation

About This Presentation
Title:

Viewing: Sichtbarkeitsbestimmung

Description:

Viewing: Sichtbarkeitsbestimmung – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 35
Provided by: StefanSch2
Category:

less

Transcript and Presenter's Notes

Title: Viewing: Sichtbarkeitsbestimmung


1
Viewing Sichtbarkeitsbestimmung
2
Rendering 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.

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

4
Die 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
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).

6
Geometrische 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
7
Geometrische 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

8
Geometrische Modelle Polygonale Modelle
  • Unterschiedliche Polygonalisierungen eines
    Zylinders

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

10
Geometrische 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
11
Geometrische 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
12
Geometrische 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

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 Objektein einem globalen
    Koordi-natensystem, in dem auch Kameras und
    Lichter sowie Oberflächeneigenschaften der
    Objekte definiert werden

14
Zusammenbau der Szene
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

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)

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

18
Kamerakoordinatensystem
Sichtkörper bei perspektivischer Projektion
begrenzt durch 2 Ebenen (near und far)
19
Kamerakoordinatensystem
  • Abbildung von Weltkoordinaten (des Modells) in
    Kamerakoordinaten Model-View-Matrix.
  • Matrix in homogenen Koordinaten, wird mit
    Projektionsmatrix multipliziert.

Quelle Angel (2000)
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.

21
Sichtbarkeitsbestimmung 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
22
Sichtbarkeitsbestimmung 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.

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

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

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.

26
Sichtbarkeitsbestimmung 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.)

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

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

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

30
Sichtbarkeitsbestimmung Entfernen verdeckter
Kanten/Flächen
Z-buffer
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)

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

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
Write a Comment
User Comments (0)
About PowerShow.com