1 / 34

Viewing: Sichtbarkeitsbestimmung

Viewing: Sichtbarkeitsbestimmung. Rendering: Einführung. Ziel : Integration von Einzeltechniken in ein System zur Bilderzeugung aus einem 3D-Modell. Große Teile: Viewing, Shading und Rasterisierung

sean-morrow
Download Presentation

Viewing: Sichtbarkeitsbestimmung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 B. Preim AG Visualisierung Viewing

  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 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). B. Preim AG Visualisierung Viewing

  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 B. Preim AG Visualisierung Viewing

  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 B. Preim AG Visualisierung Viewing

  8. Geometrische Modelle: Polygonale Modelle Unterschiedliche Polygonalisierungen eines Zylinders B. Preim AG Visualisierung Viewing

  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. B. Preim AG Visualisierung Viewing

  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 (i+1)-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 B. Preim AG Visualisierung Viewing

  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 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 B. Preim AG Visualisierung Viewing

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

  14. Zusammenbau der Szene 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 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) 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 B. Preim AG Visualisierung Viewing

  18. Kamerakoordinatensystem Sichtkörper bei perspektivischer Projektion begrenzt durch 2 Ebenen (near und far) 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) 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. B. Preim AG Visualisierung Viewing

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

  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V>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. B. Preim AG Visualisierung Viewing

  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) B. Preim AG Visualisierung Viewing

  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) 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. B. Preim AG Visualisierung Viewing

  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.) 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 B. Preim AG Visualisierung Viewing

  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 B. Preim AG Visualisierung Viewing

  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. B. Preim AG Visualisierung Viewing

  30. Sichtbarkeitsbestimmung: Entfernen verdeckter Kanten/Flächen Z-buffer 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); 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) 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 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 B. Preim AG Visualisierung Viewing

More Related