Joachim Herber Verfahren zur korrekten Darstellung von Transparenz ohne Vorsortierung Seminarvortrag
Seminarvortrag Gliederung Einleitung Grundlagen OIT-Verfahren Zusammenfassung und Ausblick
Seminarvortrag Einleitung Grundlagen OIT-Verfahren Zusammenfassung und Ausblick
Seminarvortrag Einleitung Anwendungsgebiete für Transparenz: Objekte die auch in der Realität transparent sind Zum Lösen von Verdeckungs-Problemen Zur Darstellung von Effekten Probleme: Reihenfolge der Objekte muss beachtet werden Es hat sich noch keine einheitliche Lösung etabliert
Seminarvortrag Grundlagen Einleitung Grundlagen Geometrie-Beschreibung OpenGL Das Transparenz-Problem Painter‘s Algorithmus Alpha-Blending OIT-Verfahren Fazit Ausblick
Seminarvortrag Geometrie-Beschreibung Objekte werden als Polygongitter modelliert Polygongitter bestehen aus mehreckigen Flächen (Polygon) Die Eckpunkte der Polygone werden als Vertices bezeichnet Vertices enthalten Informationen über einen Punkt auf der Objektoberfläche
Seminarvortrag OpenGL In OpenGL erfolgt das Erzeugen eines Bildes in mehreren Schritten: Umrechnung der Vertices werden in Bild-Koordinaten. Pixel Berechnen auf die Polygone abgebildet werden. Den Teil eines Polygons der auf ein Pixel Abgebildet wird als Fragment bezeichnet Für jedes Fragment wird der Fragment- Shader aufgerufen. Farb- und Tiefenwerte werden in den Bildspeicher geschrieben
Seminarvortrag Das Transparenz-Problem Die Farbe eines Pixels errechnet sich aus den Farben mehrerer Objekte Die Reihenfolge der Objekte muss beachtet werden
Seminarvortrag Painter‘s Algorithmus Übertragung von Vorgehensweisen der Malerei auf die Computergrafik Am weitesten entfernte Objekte werden zuerst gezeichnet Objekte die näher sind werden über weiter entfernte Objekte gezeichnet Problem: Für Polygone lässt sich nicht immer eindeutig festlegen welches weiter entfernt ist.
Seminarvortrag Alpha-Blending Farbe eines Pixels wird rekursiv berechnet. Neu Fragmente werden mit dem im Bildspeicher gespeicherten Farbwert gemischt (geblendet) Durch OpenGL unterstützt Problem: Fragmente müssen in der „richtigen“ Reihenfolge gerendert werden.
Seminarvortrag OIT-Verfahren Einleitung Grundlagen OIT-Verfahren Depth Peeling Stochastic Transparency A-Buffer Adaptive Transparency Zusammenfassung und Ausblick
Seminarvortrag OIT-Verfahren OIT steht für Order-Independent Transparency OIT-Verfahren sind Verfahren mit denen transparente Objekte dargestellt werden können. OIT-Verfahren sind unabhängig von der Reihenfolge in der die Objekte gerendert werden.
Seminarvortrag Depth Peeling [Everitt2001] Bild wird in mehreren Schritten gerendert In jedem Schritt wird eine Schicht des Bildes gerendert Dazu muss jeweils die komplette Szene gerendert werden Die gerenderten Schichten des Bildes werden geblendet Erweiterungen: Dual Depth Peeling [Bavoil2008] Depth Peeling mit Bucket Sort [Liu2009]
Seminarvortrag Stochastic Transparency [Enderton2011] Alpha-Wert wird als Wahrscheinlichkeit dafür dass ein Fragment gerendert wird interpretiert Berechnung mehrerer Samples, um Abweichung vom Erwartungswert zu verringern
Seminarvortrag A-Buffer Alle auf ein Pixel abgebildeten Fragmente werden in einer Liste gespeichert Rendering erfolgt in zwei Schritten: 1. Rendern der Szene Fragmente werden in die Listen geschrieben 2. Für jedes Pixel wird die dazugehörige Liste sortiert Die Fragmente werden geblendet Im Fragment-Shader muss lesend und schreibend auf Speicher zugegriffen werden Erst seit OpenGL 4.0 bzw. DirectX 11 möglich
Seminarvortrag A-Buffer Implementierung z.B. als verkettete Listen [Jason2010] Pro Pixel wird ein Verweis auf das erste Listenelement gespeichert Pro Fragment werden die Farbe, der Tiefenwert und einVerweis auf nächstes Listenelement gespeichert Ein Counter speichert die Anzahl der bereits gerenderten Fragmente
Seminarvortrag Adaptive Transparency [Salvi2011] Verwendet ähnliche Datenstruckturen wie der A-Buffer Speichert für jedes Pixele ein komprimierte Version der Sichtbarkeitsfunktion Rendering erfolgt in zwei Schritten: 1. Rendern der Szene Berechnen der Sichtbarkeitsfunktionen 2. Erneutes Rendern der Szene Auswerten der Sichtbarkeitsfunktionen
Seminarvortrag Fazit Einleitung Grundlagen OIT-Verfahren Zusammenfassung und Ausblick
Seminarvortrag Zusammenfassung und Ausblick Transparenz Problem nicht Trivial lösbar Es gibt kein Verfahren das für alle Anwendungsfälle das Beste ist Verendete Verfahren sollten abhängig vom Anwendungsfall gewählt werden Benötigte Renderpasses Korrektheit des Bildes Benötigt moderne Grafikhardware Speicher - verbrauch Depth Peeling n+nein0 Stochastic Transparency 1-3-/0nein+/0 A-Buffer 1+ja- Adaptive Transparency 20ja0
Seminarvortrag Zusammenfassung und Ausblick A-Buffer in VistaFlowLib Rendering-Struktur integrieren Kombinierten von A-Buffer OIT und Volumen-Renderieng Rendern von CSG-Objekten mit Hilfe des A-Buffers
Seminarvortrag Vielen Dank für ihre Aufmerksamkeit!
Seminarvortrag Referenzen [Everitt2001]C. Everitt et al., Interactive order-independent transparency, White paper, nVIDIA, 2 (2001), p. 7. [Bavoil2008]K. M. Louis Bavoil, Order independent transparency with dual depth peeling, tech. report, NVIDIA, [Liu2009]F. Liu, M.-C. Huang, X.-H. Liu, and E.-H. Wu, Ecient depth peeling via bucket sort, in Proceedings of the Conference on High Performance Graphics 2009, HPG '09, New York, NY, USA, 2009, ACM, pp [Enderton2011]E. Enderton, E. Sintorn, P. Shirley, and D. Luebke, Stochastic transparency, Visualization and Computer Graphics, IEEE Transactions on, 17 (2011), pp [Jason2010]H. G. N. T. Jason C. Yang, Justin Hensley, Real-time concurrent linked list construction on the gpu, Computer Graphics Forum, 29 (2010), pp [Salvi2011]M. Salvi, J. Montgomery, and A. Lefohn, Adaptive transparency, in Proceedings of the ACM SIGGRAPH Symposium on High Performance Graphics, HPG'11, New York, NY, USA, 2011, pp