Depth of Field

Download Report

Transcript Depth of Field

Depth of Field
Ein Fachvortrag von:
Max Goltzsche und Igor Marijanovic
Real-Time Rendering
Beuth Hochschule für Technik
SoSe 2012
Grundlagen
Depth of Field in der Fotografie
Die Zone, die sich aus dem Bereichen vor und hinter einem
fokussierten Objekt ergibt, in denen akzeptabel scharf abgebildet
wird. DOF ist abhängig vom Typ der Kamera, der Blendenöffnung
und der Fokussierung.
Quelle: Wikipedia.org
Circle of Confusion
Der Circle of Confusion (CoC) definiert, die Schärfe eines Punktes
bei einer bestimmten Tiefe. Wenn der CoC sichtbar wird, ist
diese Region außerhalb des DOF und somit nicht mehr scharf in
einem akzeptablen Rahmen.
Quelle: Wikipedia.org
Methoden
Ray-Traced Depth of Field
Eigenschaften
• Beruht auf Ray-Tracing (Modellierung des Weges von
Lichtstrahlen durch eine virtuelle Linse)
Vorteile
• Bildet Depth of Field naturgetreu ab
Nachteile
• Enorme Rechenleistung erforderlich und derzeit nicht als
Real-Time Rendering Verfahren nutzbar.
Accumulation-Buffer Depth of Field
Eigenschaften
• Es werden Bilder gespeichert die von verschiedenen Punkten
durch eine virtuelle Linse betrachtet die Szene abbilden.
Vorteile
• Wie im Ray-Traced Verfahren ist eine natrurgetreue Abbildung
des Effektes möglich.
Nachteile
• Da viele Bilder benötigt werden für eine Depth of Field
Abbildung ist dieses Verfahren nicht in Echtzeit nutzbar.
Layered Depth of Field
Eigenschaften
• Objekte einer Szene werden in Abhängigkeit ihrer Tiefenwerte auf
verschiedenen Ebenen gerendert und zu einem Ausgabebild
zusammengefügt. (Optimierung: Ebenenschnitte entlang der Z-Achse)
Vorteile
• Verfahren in Echtzeit anwendbar.
Nachteile
• Sortierung der Objekte schwer, wenn Objekte über mehrere Ebenen gehen.
• Harte Übergänge zwischen Voreinanderliegenden Ebenen.
• Probleme bei verdeckten Objekten die bei einem Schnitt sichtbar werden.
Forward-Mapping Z-Buffer Depth of
Field
Eigenschaften
• Buffer für Tiefen- und Farbinformationen
• Punkte werden als Kreise entsprechend ihrem CoC gerendert.
• Gerenderte Sprites werden zu einem Ausgabebild gemischt.
Vorteile
• Trotz optischer Ungenauigkeiten (Lochkamera) naturgetreuer Depth of
Field Effekt
Nachteile
• Für die einzelnen Sprites können Millionen Passes benötigt werden, was
den zeitlichen Aufwand bei der Anwendung außerhalb des
Echtzeitbereichs bringt.
Reverse-Mapping Z-Buffer Depth of
Field
Eigenschaften
• Buffer für Tiefen- und Farbinformationen
• Variante 1: Textur der Szene wird in verschiedenen Mip-Mapping Leveln
erzeugt und Lookups entsprechend dem CoC durchgeführt.
• Variante 2: Anstatt Mipmaps Verwendung von weichgezeichneten Texturen
für die Lookups. Farbmischung aus klaren und weichgezeichneten Texturen.
Vorteile
• Als Real-Time Rendering Verfahren nutzbar.
• Artefakte durch Optimierung auf akzeptables Maß reduzierbar.
Nachteile
• Diverse Artefakte bei der Anwendung solcher Verfahren.
Implementierung
Vereinfachte Shaderparameter
Weichzeichner
Erstimplementierung (naiv)
Artefakte
Depth Discontinuity Artefakte im Übergangsbereich von Würfel und Torus
Postprocessing Pipeline
Normales Bild der Szene
Tiefenbild
Normales Bild mit CoC-Werten im Alphakanal
Weichgezeichnete Bild (CoC-abhängig)
Normales und weichgezeichnetes Bild interpoliert (CoC-abhängig)
Circle of Confusion Blur
Vorstellung der Implementierung
Depth of Field Beispiel
Abschluss
•Ausblick
•Fazit
Ausblick
In naher Zukunft auch Ray-Traced
Depth of Field in Echtzeit denkbar.
Mögliche Erleichterungen bei
Implementierungen vergleichbarer
Effekte durch OpenGL ES 3.0
Fazit
DOF-Effekte lassen sich mit Real-Time Rendering Verfahren teilweise nur unter
Inkaufnahme von schwerwiegenden Artefakten realisieren.
Erweiterung durch dynamischen Weichzeichner ermöglicht jedoch bereits eine
deutliche Reduzierung von Artefakten gegenüber der ursprünglichen
Implementierung.
Höchster Aufwand durch Texture-Lookups beim angewendeten Verfahren.
Entwicklung von DOF Verfahren allgemein aufwändig.
Quellen
Nutty Software WebGL Depth of Field Example (Nathaniel Meyer)
http://www.nutty.ca/webgl/dof/
GPU Gems Chapter 23. Depth of Field: A Survey of Techniques (Joe Demers)
http://http.developer.nvidia.com/GPUGems/gpugems_ch23.html
Gpu Gems 3 Chapter 28. Practical Post-Process Depth of Field (Earl Hammon, Jr.)
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch28.html
Devmaster.net (Nathaniel Meyer)
http://devmaster.net/posts/shader-effects-depth-of-field
wikipedia.org (verschiedene Autoren)
http://en.wikipedia.org/wiki/Depth_of_field
Vielen Dank für Ihre
Aufmerksamkeit!