Techniken und Umgang mit Tiefenschärfe in 3D
Transcription
Techniken und Umgang mit Tiefenschärfe in 3D
Techniken und Umgang mit Tiefenschärfe in 3D-Programmen Schriftliche Hausarbeit zur Erlangung des akademischen Grades „Diplom Digital Artist“ im Studiengang „Digital Artist“ der privaten Filmhochschule für digitale Medienproduktion, Elstal THE GERMAN FILM SCHOOL for digital production GmbH Vorgelegt von André Schaarschmidt (Matr.-Nr. DA 0509179) am 17.07.08 1. Gutachter: Prof. Michael Orthwein 2. Gutachter: Dennis Rettkowski Techniken und Umgang mit Tiefenschärfe in 3D Programmen Bibliographische Angaben / Referat........................................................................................................3 Vorwort............................................................................................................................................................4 1. Einleitung.................................................................................................................................................5 2. Tiefenschärfe heute..............................................................................................................................8 2.1 Die Erzeugung von Tiefenschärfe.................................................................................................8 2.2 Techniken und Werkzeuge...........................................................................................................13 2.2.1 Vergleich von 3D-Programmen und Compositing...........................................................13 2.2.2 Werkzeuge der 3D-Anwendungen....................................................................................20 3. In der Praxis...........................................................................................................................................31 3.1 Arbeitsweisen von Unternehmen................................................................................................31 3.2 Vorschlag zur Verbesserung der Arbeitsweise........................................................................34 3.2.1 Funktionsumfang des Skripts pb_dofGUI........................................................................34 3.2.2 Entwicklung des Skripts.......................................................................................................37 3.2.3 Vorteile des Skripts und Möglichkeiten zur Erweiterung..............................................41 4. Zukunft der Tiefenschärfe in 3D....................................................................................................43 4.1 Neue Werkzeuge............................................................................................................................43 4.2 Tiefenschärfe in Echtzeit.............................................................................................................46 4.3 Ausblick / Tendenzen..................................................................................................................49 5. Fazit / Zusammenfassung................................................................................................................52 Literaturverzeichnis....................................................................................................................................55 Bildquellen...................................................................................................................................................57 Eidesstattliche Erklärung..........................................................................................................................59 -2- Bibliographische Angaben / Referat Schaarschmidt, André: Techniken und Umgang mit Tiefenschärfe in 3D-Programmen, 2008 Private Filmhochschule für digitale Medienproduktion, Elstal The German Film School for digital production GmbH Diplomarbeit, 2008 Referat: Diese Diplomarbeit beschäftigt sich zum einen mit der Entstehung des Phänomens Tiefenschärfe und seiner digitalen Simulation. Hierbei werden die Vor- und Nachteile verschiedener Simulationstechniken und das diesbezügliche Potential mehrerer 3DProgramme erläutert. Zum anderen verdeutlicht diese Arbeit den Status quo in der praktischen Arbeit mit Tiefenschärfe am Beispiel von drei unterschiedlich großen Firmen der CG-Branche. Des Weiteren wird ein vom Autor entwickeltes Skript vorgestellt, das eine effektivere Arbeit mit Tiefenschärfe in dem 3D-Programm Maya ermöglicht. Abschließend werden Lösungsansätze behandelt, die in der Zukunft zur Optimierung der Benutzerfreundlichkeit sowie des Kosten- und Arbeitsaufwands im Bereich der Tiefenschärfesimulation beitragen können. -3- Vorwort Ich möchte mich an dieser Stelle ganz herzlich bei meiner Partnerin Anne Cornelia Fleischer bedanken, die mich in jeder Phase meines Diplomsemesters unterstützt und meine Arbeit Korrektur gelesen hat. Des weiteren gilt mein Dank Herrn Prof. Orthwein an der Fachhochschule Mainz, sowie meinem RenderMan Dozenten Herrn Rettkowski für ihre Anregungen zu dieser Arbeit und das sie sich als Gutachter bereit erklärt haben. Meiner Schwester Ilka Brombach danke ich für ihre Unterstützung bei der Gliederung und dem Korrekturlesen, ebenso wie meinen Eltern Irene und Thomas Schaarschmidt. Einen recht herzlichen Dank gilt ebenso meinen Interviewpartnern Herrn Bumba von Bumba Animation Studio in Brühl, Herrn Mittelhockamp von 4k Animation in Berlin und Herrn Martin von Pixomondo in München für ihre Teilnahme an meiner Studie. -4- 1. Einleitung Ein Ziel der Computergrafik ist seit je her die fotorealistische Nachahmung unserer Umwelt. Um dieses Ziel zu erreichen, bedarf es an Wissen aus vielen Fachbereichen. Die Tiefenschärfe, mit der sich diese Arbeit beschäftigt, ist ein Teilgebiet, das zum Erreichen dieses Zieles notwendig ist. Die Tiefenschärfe in einem computergenerierten Bild kann entscheidend für den Realitätsgrad der Darstellung sein, da wir dieses Phänomen aus Filmen und Fotografien gewohnt sind. Der Effekt der Abb. 1: Tiefenschärfe und Bokeh-Effekt Tiefenschärfe kann bei Verwendung einer realen Film- oder Bildkamera durch einen einfachen Knopfdruck erzielt werden. Seit Jahrzehnten wird Tiefenschärfe im Film und der Fotografie eingesetzt, um den Blickfokus des Betrachters zu führen. Durch die physikalische Beschaffenheit einer Linse entsteht das, was sich in der Computergrafik nur mit Aufwand simulieren lässt. Die vorliegende Arbeit erläutert die Möglichkeiten, die es gibt, um Tiefenschärfe zu imitieren, prüft die führenden 3D-Programme auf ihre Benutzerfreundlichkeit im Umgang mit Tiefenschärfe und untersucht den aktuellen Stand der Technik. Der Schwerpunkt der Arbeit wird dabei zunächst auf der Untersuchung der Mängel liegen, die die bestehenden Programme zur Erzeugung von Tiefenschärfe aufweisen. Anschließend sollen Möglichkeiten zur Verbesserung aufgezeigt werden. Tiefenschärfe, so zeigen Erfahrungen in der Praxis, kann mit der Rechenleistung von aktuellen Computersystemen schneller denn je erzeugt werden. Jedoch nutzen 3D-Grafiker diese immer noch selten, da die notwendigen Werkzeuge zum Einstellen und Kalibrieren nicht existieren oder nicht benutzerfreundlich sind und somit mehr Zeit und Kosten verursachen. -5- Die Arbeit geht deshalb wie folgt vor: Die Entstehung des Phänomens Tiefenschärfe wird beschrieben und die verschieden technischen Verfahren erläutert, die dazu dienen, eine Simulation dieses Effekts auf computergenerierte Bilder anzuwenden. Anschließend wird in Kapitel 2.2.1 untersucht, in welchen Arbeitsabschnitten einer digitalen Produktion Tiefenschärfe integriert wird. Die Vor- und Nachteile der dabei angewendeten Verfahren werden gegenübergestellt. Da 3D-Anwendungen eine wichtige Rolle bei der Arbeit mit digitaler Tiefenschärfe spielen, werden im Rahmen dieser Ausführung die gängigsten 3DSoftwarepakete auf ihre Benutzerfreundlichkeit geprüft und die Ergebnisse ausgewertet. Hiernach wird in Kapitel 3.1 der Status quo in der Praxis untersucht. Zu diesem Zweck wurden drei Firmen unterschiedlicher Größe interviewt, welche jeweils über ihre Erfahrungen mit Tiefenschärfe und ihre Herangehensweisen diesbezüglich Auskunft gegeben haben. Auf die Auswertung der Interviews folgt ein technischer Teil. Es wurde ein Skript für den effektiveren Umgang mit Tiefenschärfe entwickelt. In Kapitel 3.2.1 wird das Skript erläutert. Es wird der Funktionsumfang des Skriptes dargestellt sowie die Anwendungsbereiche definiert. Anhand von Programmcode-Beispielen wird die Konzeption der Benutzeroberfläche näher beschrieben und darüber hinaus ein Ausblick auf mögliche Erweiterungen gegeben, die im Rahmen dieser Arbeit nicht realisierbar waren. Anschließend werden in Kapitel 5 Lösungsansätze genannt, um die Benutzerfreundlichkeit, den Kosten- und Arbeitsaufwand im Umgang mit Tiefenschärfe zu verbessern. Dann werden die Methoden, mit denen Echtzeitanwendungen, wie etwa Computerspiele, Tiefenschärfe simulieren, betrachtet. Des Weiteren werden Entwicklungen und Technologien erläutert, welche für weiterentwickelte Techniken und schnellere Berechnungen in der Zukunft eine Rolle spielen. Abschließend werden die Ergebnisse der Arbeit zusammengefasst. Zuvor sollen hier noch einige grundlegende Begriffe erläutert werden, die im Rahmen dieser Diplomarbeit verwendet werden: -6- Bildrauschen ist das Flackern von Bildpunkten und kann im ganzen Bild auftreten, aber ist besonders sichtbar in statischen Bereichen. Es entsteht, wenn zu wenig Samples beim Berechnen eines Bildpunkts verwendet werden. Compositing ist der Vorgang des Kombinierens von separat generierten Bildelementen zu einem einzigen Bild. NURBS steht für „nicht-uniforme rationale B-Splines“ und ist ein mathematisches Modell zum Erzeugen und Visualisieren von Kurven und Flächen in der Computergrafik. Ein Pass ist die gesonderte Berechnung von speziellen Eigenschaften einer 3D-Szene, wie nur Reflektionen oder Schatten. Rendering ist ein Prozess, bei dem durch Berechnungen von Licht-, Geometrie-, Textur- und Oberflächeninformationen, ein Bild generiert wird. Beim Compositing versteht man unter Rendering auch die Prozedur, bei der die einzelnen Bildelemente und Effekte durch entsprechende Berechnung zu einem einzigen Bild kombiniert werden. Mit Sampling ist die mehrfache Abtastung eines Bildpunkts gemeint, wobei mittels eines Filters aus den Abtastergebnissen der finale Farbwert errechnet wird. Sampling-Artefakte s. Bildrauschen Shader sind Funktionen zur Berechnung der Oberflächenbeschaffenheit von Objekten. Test-Renderings sind Berechnungen des aktuellen Bildes in niedriger Qualität, die dazu dienen, aktuelle Einstellungen beurteilen zu können. -7- 2. Tiefenschärfe heute 2.1 Die Erzeugung von Tiefenschärfe Unter Tiefenschärfe versteht man in der Fotografie und im Film den Bereich, der vom Objektiv einer Kamera scharf abgebildet wird. Eine reale Linse kann nur eine Ebene in einer definierten Entfernung präzise fokussieren: die so genannte Fokusebene.1 Die Abnahme der Schärfe erfolgt auf beiden Seiten graduell. Der Bereich der zu einem Drittel vor und zu zwei Drittel hinter der Fokusebene liegt, wird als scharf wahrgenommen.2 Unter normalen Sichtbedingungen ist für den Betrachter nicht erkennbar, dass nur eine Ebene im Fokus liegt. Er nimmt die Bereiche davor und dahinter auch scharf wahr.3 Abb. 2: Bereiche der Tiefenschärfe Der Begriff Tiefenschärfe ist nicht zu verwechseln mit Schärfentiefe. Letztere ist eine optisch geometrische Größe, die den Schärfebereich eines optischen Systems, in dem ein Bildelement bewegt werden kann, ohne merklich an Schärfe zu verlieren, mathematisch beschreibt. 1 Vgl. Goulekas, Karen E.: Visual Effects in a Digital World, 2001, S. 197 (Im Folgenden zitiert als Goulekas: Effects) 2 Vgl. Wright, Steve: Digital Compositing for Film and Video, 2002, S. 146 3 Kerlow, Isaac V.: The Art of 3D Computer Animation and Effects, 2004, S. 317 -8- Unschärfe entsteht, wenn ein Punkt, der durch eine Linse projiziert wird, außerhalb der Filmebene liegt. Die Lichtstrahlen treffen in diesem Fall nicht am selben Punkt auf dem Filmmaterial zusammen. Es kommt dadurch zu einer Zerstreuung des Punkts und es entsteht ein Zerstreuungskreis, welcher – in Abhängigkeit vom jeweiligen Filmformat – ab einer bestimmten Größe Unschärfe bewirkt. Der Zerstreuungskreis spielt bei der Berechnung der Schärfentiefe eine große Rolle. Der Radius der Zerstreuung hängt von der Distanz des Objektes zur Kamera ab, sowie von der Größe der Blendenöffnung und der Art der Linse.1 Bei Beugung des Lichtes kann ein zu projizierender Lichtpunkt ebenfalls unscharf abgebildet werden. Abb. 3: Zerstreungskreise Die Größe der Tiefenschärfe ergibt sich somit aus einer Kombination von den verwendeten Kameralinsen- und Blendeneinstellungen, so wie auch von der Distanz der Linse zur Fokusebene. Eine große Blende erzeugt einen engen Tiefenschärferaum, wobei eine kleine Blende diesen vergrößert. Tiefenschärfe verhält sich im Quadrat proportional zur Entfernung von Linse zum Objekt. Wenn sich die Distanz verdoppelt, vervierfacht sich die Tiefenschärfe.2 1 Vgl. Gritz, Larry & Kaufmann, Morgan: Advanced RenderMan: Creating CGI for Motion Pictures, 2000, S. 361 2 Goulekas: Effects, S. 127 -9- Abb. 4: Tiefenschärfe bei verschiedenen Blendenzahlen Eine besondere Charakteristik der Tiefenschärfe ist der so genannte Bokeh-Effekt.1 Dieser beschreibt die ästhetischen Qualitäten von Bildbereichen, die außerhalb des Fokus liegen, und ist maßgeblich verantwortlich für eine hochwertige Tiefenschärfe. Die Eigenschaften des Bokehs werden beeinflusst durch die Struktur des Zerstreuungskreises. Diese wiederum wird bestimmt durch die Form der Blende bzw. der Eintrittspupille des Objektivs und hat Einfluss auf den Helligkeitsverlauf. Die Form und Anzahl der Blendenlamellen hat ebenfalls eine Auswirkung auf den Bokeh und darauf, ob er eher unruhig bzw. eher gleichförmig und dadurch ruhig wirkt. Beispielsweise verschwimmen Lichtquellen bei Nachtaufnahmen in Form der Blendenöffnung, wenn sie sich außerhalb der Tiefenschärfe befinden. Abb. 5: Eine dreieckige Blende vor der Linse resultiert in einer dreieckigen Bündlung des Lichts. Der Bokeh-Effekt nimmt die Form der Blende an. Das Phänomen Tiefenschärfe versucht man nun mittels verschiedener Methoden in der digitalen Welt nachzuahmen. Ein 3D-Programm stellt eine 3D-Szene komplett scharf da, genauso wie eine Lochkamera2, und somit verfügt das gerenderte Bild über eine unendlich 1 Merklinger, Harold M.: A Technical View of Bokeh. In: Photo Techniques, Band 18, Nr. 3, 1997, S. 37 2 Vgl. Shirley, Peter: Ray Tracing, 2000, S. 113 - 10 - große Tiefenschärfe. Es gibt keinen Bereich der unscharf ist. Die erste Methode um dies zu ändern, wurde 1984 von Cook u.a.1 unter dem Namen Distributed-Ray-Tracing oder Stochastic-Ray-Tracing entwickelt. Hierbei werden für die Berechnung des Farbwertes eines Pixels mehrere Strahlen vom Punkt des Betrachters emittiert. Die aus diesem Prozess gewonnenen Ergebnisse dienen zur Ermittlung des jeweiligen Farbwertes. Im Falle von Tiefenschärfe ist der Startpunkt der Strahlen nicht nur ein Punkt, sondern es gibt mehrere Ausgangspunkte, die auf einer linsenförmigen Fläche verteilt liegen; dadurch ergeben sich unterschiedliche Wege zum gesuchten Zielpunkt. Je näher die Strahlen beieinander liegen, desto geringer ist der Unterschied des ermittelten Farbwerts zum Originalfarbwert. Das Bild wird dadurch als scharf wahrgenommen. Je weiter sie jedoch von einander entfernt sind, desto unschärfer ist das Bild, da eine erhöhte Differenz zwischen den Ergebnisfarbwerten und dem Zielfarbwert vorliegt. Der Algorithmus wurde zwei Jahre nach seiner Entstehung von Cook optimiert. Dies geschah mit Hilfe der stochastischen Verteilung von Strahlen nach der Monte-Carlo-Berechnung.2 Durch diese Weiterentwicklung konnten die Sampling-Artefakte, die dann auftreten, wenn die Anzahl der Strahlen zu gering ist, durch eine unregelmäßige Strahlenverteilung gemindert werden. Mit Hilfe dieser Methode werden die Artefakte lediglich als Bildrauschen wahrgenommen und stechen weniger hervor. Eine andere Methode zur Erzeugung von Tiefenschärfe besteht in der Nachbearbeitung eines Bildes. Hierbei wird ein so genannter Post-Effekt auf das Ausgangsmaterial gelegt, und ein Algorithmus wertet anhand von Graustufeninformationen aus, welcher Pixel unscharf gezeichnet werden muss. Hierbei sollte der Algorithmus berücksichtigen, dass Kanten von Objekten, die im Fokus liegen, scharf bleiben, wenn sie sich mit Objekten überschneiden, die im Bereich der Unschärfe liegen. Dies gilt auch andersherum. Es kann sonst zu Artefakten kommen, wie z.B. einem Schein um die Kante eines Objekts herum; dies nennt man Edge1 Cook, Robert L. u.a.: Distributed Ray Tracing http://graphics.pixar.com/DistributedRayTracing/paper.pdf 1984, Abruf am 2008-07-27 2 Cook, L. Robert: Stochastic Sampling in Computer Graphics http://graphics.pixar.com/StochasticSampling/paper.pdf 1986, Abruf am 2008-07-27 - 11 - Bleeding. Die s.g. Unschärfe-Algorithmen werden oft als Linsenunschärfe bezeichnet. Ihre Ausführung dauert in der Regel länger als einfache Weichzeichnungsmethoden, wie z.B. Gaussian, da diese meistens auch den Bokeh-Effekt simulieren. Egal welche Unschärfe verwendet wird, es gilt immer: Je größer die Unschärfe sein soll, desto rechenintensiver ist der Vorgang.1 Eine weitere Methode zur Erzeugung von Tiefenschärfe ist das Multi-Pass-Verfahren, auch Jittering genannt, welches zeilenbasierte Renderer oft verwenden. Hierbei wird die Position der Kamera mehrmals bewegt ohne den Fokuspunkt zu verändern. Die Größe der Bewegung ist abhängig von der Blende oder der Form der Linse. Nach jeder Verschiebung der Kamera wird das Bild neu berechnet und zum Schluss werden alle Bilder übereinander gelegt. Objekte, die eine größere Entfernung zum Fokuspunkt haben, werden weniger scharf dargestellt als Objekte, deren Entfernung kleiner ist. Anders als beim Post-Effekt kommt es hier zu keinen Problemen an den Kanten von Objekten.2 Abb. 6: Multi-Pass-Verfahren bzw. Jittering 1 Vgl. Adams, Mark; Miller, Erick und Sims, Max: Inside Maya 5, 2003, S. 786 2 Vgl. Hachisuka, Toshiya: GPU Gems 2, 2005, S. 628 - 12 - 2.2 Techniken und Werkzeuge 2.2.1 Vergleich von 3D-Programmen und Compositing Wenn der Anwender vor der Entscheidung steht, auf welche Art und Weise er Tiefenschärfe zu seinem Bild hinzufügt, kann er zwischen unterschiedlichen Verfahren abwägen, die alle ihre Vor- und Nachteile besitzen. Ein Verfahren ist es, die Tiefenschärfe gleich beim Rendern im 3D-Programm mit in das jeweilige Bild zu rechnen. Jedoch bestehen im späteren Verlauf einer Produktion keine Möglichkeiten mehr, Einfluss auf Größe und Stärke der Tiefenschärfe zu nehmen. Tritt ein Fehler auf, so müssen die Einstellungen der Tiefenschärfe überprüft und zur Begutachtung Test-Renderings der Szene angefertigt werden. Dies ist in der Regel sehr zeitaufwendig – besonders wenn Fokusverlagerungen von einem Objekt auf ein anderes animiert werden, da es zum Validieren der Animation notwendig ist, eine ganze Bildsequenz zu berechnen. Selbst in einer niedrigen Bildqualität kann dies viel Zeit beanspruchen. Die Tiefenschärfe beim 3D-Rendering zu erzeugen, kann allerdings Qualitätsvorteile im Vergleich zu allen anderen Verfahren bieten. Nur im 3D-Raum sind alle Informationen vorhanden, die für eine exakte und realistische Berechnung notwendig sind. Wie diese Informationen genutzt werden, hängt allerdings vom verwendeten Renderer ab, welcher über Schnelligkeit und Qualität entscheidet. Ein solcher Renderer ist zum Beispiel Renderman, welcher einen effizienten und patentierten Algorithmus für die Kantenglättung beim Berechnen von Tiefenschärfe verwendet. Er erzeugt eine qualitativ hochwertige Tiefenschärfe, ohne größere Probleme mit Artefakten zu bereiten und überragt somit andere Renderer in puncto Schnelligkeit. Ein anderer hierfür einsetzbarer Renderer ist Mental Ray, dessen Stärke es ist, in effizienter Weise Ray-Tracing-Berechnungen auszuführen. Diese Art der Berechnung bietet sich, wie - 13 - eingangs beschrieben, für die Berechnung von Tiefenschärfe an. Qualitativ kann Mental-Ray mit Renderman mithalten, jedoch ist der Rechenaufwand, um Artefakte und zu starkes Bildrauschen zu beseitigen, bei Verwendung dieses Renderers meist um ein Vielfaches höher. Software- bzw. Scanline-Renderer arbeiten zeilenweise mit den Verfahren der Verdeckungsberechnung von Polygonen. Für die Berechnung von Tiefenschärfe nutzen sie das Verfahren des Multi-Pass-Rendering oder eines Post-Effekts, wie in Kapitel 2.1 beschrieben. Beide Verfahren sind in der Berechnung der Tiefenschärfe schneller als die zuvor erläuterten. Sie liefern jedoch keine akkuraten Ergebnisse; die Qualität der Unschärfe hat oft etwas Unnatürliches und Flaches. Die Ray-Tracing-Algorithmen, die zur Berechnung von Tiefenschärfe verwendet werden, ähneln denen von Bewegungsunschärfe. Um Rechenzeit zu sparen, lohnt es sich, das Sampling zu konfigurieren, damit weniger Strahlen in den unscharfen Bereichen verwendet werden und die Farbwerte stärker interpoliert werden. Dies ist zwar ein Qualitätsverlust, der in den unscharfen Bereichen aber oft nicht sichtbar ist und sich zugunsten der Render-Zeiten auswirkt. Ein weiteres Verfahren bei der Berechnung von Tiefenschärfe ist die Bildnachbearbeitung unter Verwendung eines Graustufenbildes. Hierbei wird im 3D-Programm das Bildmaterial, oft Beauty-Pass genannt, ohne Unschärfe berechnet und für die Weiterverarbeitung an ein Compositing-Programm oder externes Tiefenschärfe-Programm übergeben. Diese Bildinformationen werden unter Zuhilfenahme einer Maske mit einem Unschärfe-Effekt versehen. Diese Maske basiert auf einem Graustufenbild, das unabhängig vom Beauty-Pass ausgegeben wurde. Ein solches Graustufenbild wird in der Regel von einem 3D-Programm berechnet und beinhaltet Fokusinformationen: Es kann scharfe und unscharfe Bildbereiche als Schwarz-WeißVerlauf darstellen. Es wird hierbei die Farbe Schwarz für scharfe und Weiß für unscharfe Bildelemente verwendet, oder umgekehrt. Der Schärfeverlauf wird in den entsprechenden Grautönen visualisiert. Mit Hilfe dieser Maske kann man den oben genannten UnschärfeEffekt gezielt auf die Bereiche des jeweiligen Bildes anwenden, die im Graustufenbild weiß bzw. hell dargestellt werden. Je heller der Bildbereich, desto größer die Intensität des Effekts. - 14 - Abb. 7: Fokusinformationen in einem Graustufenbild Das Graustufenbild sollte im 3D-Programm in einer möglichst hohen Farbtiefe berechnet werden. Es empfiehlt sich hier eine Farbtiefe von mindestens 16bit oder noch besser 32bit zu verwenden, damit beim Letzteren jeder Farbkanal über 4,2 Milliarden Helligkeitsnuancen verfügt. Bei 8bit Farbtiefe sind es lediglich 256 Helligkeitsnuancen. Dies kann dazu führen, dass es im Verlauf von Weiß zu Schwarz zu Unterbrechungen kommt, was auch Banding genannt wird und dazu führt, dass der Schärfeverlauf nicht mehr gleichmäßig ist. Abb. 8: Banding kann bei zu wenig Farbtiefe auftreten. - 15 - Dies ist nur eine Methode, bei der Graustufenbilder eingesetzt werden. Die häufigste Verwendung finden Graustufenbilder jedoch, wenn es darum geht, Entfernungen von Objekten zu einer Kamera darzustellen. In den folgenden Abschnitten wird erläutert inwiefern dies auch für die Erzeugung von Tiefenschärfe eine Rolle spielt. Zur Darstellung von Objektentfernungen verwendet man eine andere Art von Graustufenbildern. Diese enthalten nicht Fokusinformationen, sondern Tiefeninformationen und werden auch als Depth-Map, Tiefenkanal oder Z-Kanal bezeichnet. Dabei steigt der Dunkelheitsgrad, mit dem Objekte dargestellt werden, proportional zu ihrer Entfernung zur Kamera. Bei Verwendung von Bild-formaten wie IFF und RLA können diese Tiefeninformationen beim Render-Vorgang in das rohe Bildmaterial integriert werden. Es entsteht dabei also keine zusätzliche Bildsequenz auf der Festplatte, die verwaltet werden muss; Speicherplatz spart man allerdings auf diese Weise nicht. Abb. 9: Tiefeninformationen in einem Graustufenbild - Tiefenkanal Je nach Funktionsumfang des Compositing- oder externen Tiefenschärfe-Programms können diese auch aus den Tiefeninformationen eine Maske für Tiefenschärfe generieren - basierend auf den jeweiligen Einstellungen des Anwenders. Es wird hierbei ein bestimmter Grauwert als Fokusebene definiert und alle Werte innerhalb eines definierten Grenzbereichs, die größer bzw. kleiner als dieser Grauwert sind, werden in der neuen Maske schwarz abgebildet. Mit einem vom Anwender bestimmbaren Parameter kann der Schärfeverlauf bestimmt werden, der alle Pixelfarbwerte bis zur vollständig weißen Verlaufsgrenze der Schärfe linear heller macht. - 16 - Es ist wichtig, dass die Kantenglättungen des Graustufenbildes und des Beauty-Passes möglichst übereinstimmen, da sonst Artefakte entstehen. Die Glättung der Kanten erfolgt jeweils beim Render-Vorgang. Das Problem mit Kantenglättung jeglicher Art ist das finale Pixel-Farbwerte von einer Anzahl von Samples berechnet werden. Jedes dieser Samples ist das Resultat einer Gleichung zur Berechnung der Oberfläche. Ein kantengeglätteter Pixel ist Näherungsweise der Durchschnitt dieses Berechnung. Abhängig von der Anzahl der Sample kann dies jedoch zu unterschiedlichen Ergebnissen führen.1 Abb. 10: keine Kantenglättung (oben) und mit Kantenglättung (unten) Das Problem der Kantenglättung fällt besonders bei Dateiformaten ins Gewicht, welche einen Kanal für Tiefeninformationen beinhalten. Das liegt daran, dass dieser Kanal aus technischen Gründen nicht bei der Berechnung der Kantenglättung einbezogen werden kann, da dies zu Bildstörungen führt. Eine Lösung für dieses Problem ist es, den Tiefeninformationskanal gesondert auszugeben, ihn dabei doppelt so groß wie den Beauty-Pass zu rendern und im Compositing-Programm wieder auf die Projekt-Auflösung herunterzuskalieren. Durch die Verkleinerung kommt es zu einer Neuberechnung der Pixel-Farbwerte und so automatisch zu einer Kantenglättung. Manche Programme erlauben dem Anwender darüber hinaus, den Algorithmus für die Neuberechnung zu bestimmen. 1 Bertram, Hal: RenderMan For Everyone – Course 25, SIGGRAPH2006, S. 227 - 17 - Abb. 11: Normale Unschärfe (oben), Linsen-Unschärfe (unten) Zurück zur Erzeugung von Tiefenschärfe durch Bildnachbearbeitung: Verwendet man einen simplen Unschärfe-Effekt, sieht die Tiefenschärfe oft flach und unecht aus, da der BokehEffekt hierbei nicht simuliert wird und Edge Bleeding auftritt. Zur Lösung dieses Problems wurden zusätzliche Weichzeichner programmiert, welche durch aufwendigere Berechnungen eine Unschärfe mit höherem Realitätsgrad erzeugen. Diese Unschärfe ähnelt der einer realen Kamera und beinhaltet eine Simulation des Bokeh-Effekts. Oft lässt sich mit diesen speziellen Linsenunschärfen auch die Form der Blende individuell einstellen und somit die Charakteristik des Bokehs kontrollieren. Die Qualität der Tiefenschärfe und die Geschwindigkeit ihrer Berechnung hängen maßgeblich von dem verwendeten Algorithmus ab. Es gibt Firmen, die sich auf die Effizienz dieser Algorithmen spezialisiert haben und sie in Form von externen Programmen, Shadern oder Bildnachbearbeitungs-Effekten für diverse 3D-Anwendungen auf den Markt bringen. Zwei externe Programme, welche dem Benutzer einen hohen Grad an Flexibilität beim Arbeiten mit Tiefenschärfe geben sind Depth of Field Generator PRO von Richard Rosenman - 18 - und X-Dof Sutdio von der Firma Evasion 3D. Letzteres wird als Post-Effekt für das Programm Lightwave und als Shader für den Renderer Mental-Ray angeboten, die dem Anwender zusätzliche Kontrolle beim Rendern der Tiefenschärfe im 3D-Programm geben. Großer Beliebtheit erfreut sich auch das Plug-In Lenscare von der Firma Frischluft. Dieses bietet für Adobe After Effects und weitere Compositing-Programme eine Vielzahl an Kontrollmöglichkeiten für die Arbeit mit Tiefenschärfe, welches auch einen Tiefenkanal verarbeiten kann. Da die Bildnachbearbeitungs-Effekte und externen Programme alle auf Tiefeninformationen in Form von Graustufenbildern angewiesen sind, entwickeln viele Anwender selbst Lösungen, um diese im 3D-Programm möglichst komfortabel und schnell erstellen zu können. Ein Beispiel ist der zDepthDOF-Shader von Andreas Bauer. Dieser Mental-Ray-Shader ermöglicht es, vier unterschiedliche Fokusverläufe pro Bild zu speichern, die Kanäle Rot, Grün, Blau und Alpha werden dabei separat angesprochen und in jedem ein anderer Verlauf gespeichert. Abb. 12: Fokusinformationen in den einzelnen Kanälen. Das erste Bild zeigt alle Kanäle kombiniert. Der Vorteil beim Erzeugen der Tiefenschärfe in der Nachbearbeitung ist die hohe Flexibilität. Alle charakteristischen Merkmale der Tiefenschärfe können zu jedem Zeitpunkt der Produktion verändert werden. Die Qualität der Tiefenschärfe kann mit der in einem 3DProgramm gerenderten mithalten. Das wiederholte Rendern eines Unschärfe-Effekts im Compositing-Programm ist wesentlich schneller als eine Neuberechnung im 3D-Programm. Dies ist besonders für den Visual-Effects-Bereich wichtig, wenn die Charakteristik der Tiefenschärfe an eine reale Kameraaufnahme mit Tiefenschärfe angepasst werden muss. Ein weiterer Vorteil ist, dass eine Farbkorrektur einfacher ist, wenn alle Objekte scharf sind, - 19 - und erst danach dem Bild die Tiefenschärfe hinzugefügt wird. An seine Grenzen stößt dieses Verfahren, wenn sich im Kamerafokus Reflektionen und Refraktionen von Objekten befinden, die selbst aber im Bereich der Unschärfe positioniert sind. Ein Graustufenbild kann keine Tiefeninformationen von Reflektionen und Refraktionen erfassen, so dass der Unschärfe-Effekt an dieser Stelle ein falsches Ergebnis liefert. Die Reflektionen und Refraktionen werden in diesem Fall scharf abgebildet, müssten jedoch unscharf sein. Der 3D-Grafiker James May hat diese Problematik auf seiner Internetseite untersucht.1 Weitere Probleme entstehen bei semi-transparenten Flächen. Auch hier liefert ein Graustufenbild keine korrekten Ergebnisse. Es ist ebenfalls problematisch, wenn Objekte im Vordergrund so unscharf sind, dass dahinter liegende Objekte sichtbar werden. Diese Informationen sind in der Bildnachbearbeitung nicht rekonstruierbar. Beide Probleme lassen sich nur lösen, wenn Vorder-, Mittel- und Hintergrund im 3D-Programm separat gerendert werden. Nachdem nun die Vor- und Nachteile der Erzeugung von Tiefenschärfe durch Rendering bzw. Bildnachbearbeitung näher beleuchtet wurden, folgt im nächsten Kapitel eine ausführliche Untersuchung der gängigen 3D-Anwendungen. Da diese die Basis einer jeden 3D-Produktion bilden, ist es nicht nur wichtig die zwei oben erläuterten Tiefenschärfe-Verfahren zu kennen, sondern auch über die Funktionen, welche die einzelnen 3D-Pakete für die Arbeit mit Tiefenschärfe bieten, informiert zu sein – zumal diese stark variieren. 2.2.2 Werkzeuge der 3D-Anwendungen Bei der Arbeit mit einer realen Kamera ist Tiefenschärfe ein Effekt, der fortgeschrittenes Kamerawissen benötigt.2 Im Folgenden wird erläutert, welche Werkzeuge die unterschiedlichen 3D-Pakete bieten, um dem Anwender diesen komplexen Wissensbereich 1 May, James: Depth of Field and Reflections http://www.altyna.com/lw/DOFreflections.htm Abruf am 2008-08-01 2 Vgl. E-Mail: Martin, Sven von Pixomondo Betreff: Diplom Tiefenschärfe / Fragebogen Abruf am 2008-07-23 - 20 - zugänglich zu machen – auch ohne professionelles Know How im Umgang mit Kameras. Das 3D-Paket Maya 2008 von der Firma Autodesk gehört zu den führenden 3D-Programmen in der Computergrafik-Branche und wird regelmäßig bei Kinofilm-Produktionen weltweit eingesetzt. Tiefenschärfe wird bei Maya an dem jeweiligen Kameraobjekt unter dem Punkt Depth of Field aktiviert. Es gibt drei Attribute, welche die Tiefenschärfe kontrollieren. Focus Distance gibt die Position der Fokusebene an und F Stop steuert die Blendenzahl. Focus Region Scale dient dazu, beim Verändern der Maßeinheit einer Szene - was ebenfalls Einfluss auf die Tiefenschärfe hat - diese an die neuen Größenverhältnisse anzupassen. Die Kontrolle der Tiefenschärfe erfolgt nur über diese Werte und es gibt keine grafische Darstellung dafür, wo sich die Fokusebene befindet oder in welchem Schärfebereich ein Objekt liegt. Um festzustellen, ob sich die Fokusebene an der richtigen Stelle befindet und wie groß der Tiefenschärfebereich ist, müssen Testbilder gerendert werden. Abb. 13: Attribute zum Kontrollieren der Tiefenschärfe in Maya Maya kann Tiefenschärfe mit dem programminternen Software-Renderer mittels des PostWeichzeichnungs-Effekts erzeugen und verwendet hierbei die Tiefeninformationen, die jeweils von Maya generiert werden.1 Die so entstandene Tiefenschärfe sieht jedoch unecht und flach aus. Unter Verwendung des integrierten Mental-Ray-Renderers kann die Qualität verbessert werden, jedoch ist dieser Prozess rechenaufwendig. Und, um ein störungsfreies Bild zu erzeugen, ist eine hohe Sample-Rate notwendig. Mit RenderMan Studio und RenderMan for Maya dagegen wird die Tiefenschärfe schnell berechnet und dies in sehr guter Qualität. 1 Adams, Mark; Miller, Erick und Sims, Max: Inside Maya 5, 2003, S. 785 - 21 - Ein anderes sehr gängiges Programm neben Maya ist 3Ds Max 2008, ebenfalls von der Firma Autodesk, welches sowohl in Filmproduktionen als auch für Architektur-Visualisierungen eingesetzt wird. Es findet darüber hinaus in der Spielebranche Verwendung. Das Aktivieren von Tiefenschärfe erfolgt wie bei Maya über die Kameraoptionen. Unter dem Punkt Multi-Pass-Effect kann der Nutzer die Tiefenschärfe aktivieren und dann auswählen, ob er die Tiefenschärfe-Einstellungen des Scanline- oder Mental-RayRenderers verwenden will. Letztere bestehen nur aus dem Attribut F-Stop, welches die Größe der Tiefenschärfe bestimmt. Die Position der Fokusebene wird unabhängig vom Renderer mittels des Kameraziels bzw. per Zahleneingabe unter Target Distance definiert. Zusätzlich kann die Fokusebene mit dem Focal DepthWert unabhängig vom Kameraziel gesteuert werden. Die Tiefenschärfe des Scanline-Renderes hingegen ist ein s.g. Multi-Pass-Render-Effekt und verwendet die Technik des oben erläuterten Jitterings. Der Scanline-Renderer beinhaltet darüber hinaus noch weitere Attribute zum Steuern der Sampling-Qualität, des Überblendens der multiplen Render-Durchläufe und der Kantenglättung von Multi-Passes. Mit dem Preview-Knopf kann beim Scanline-Renderer eine Vorschau der Tiefenschärfe im Viewport angezeigt werden, welche allerdings beim Abspielen einer Animation oder Anwählen eines anderen Menüpunkts sofort verschwindet. Abb. 14: Attribute zum Kontrollieren der Tiefenschärfe für den Scanline-Renderer in Max Zusätzlich bietet 3Ds Max die Möglichkeit, Tiefenschärfe nach dem Rendering-Prozess, ähnlich wie im Compsiting-Programm, mit Hilfe eines Post-Effekts hinzuzufügen. Hierbei wird die Szene hinsichtlich ihrer Tiefe in Vordergrund, Hintergrund und Fokusbereich unterteilt und entsprechend den Einstellungen des Post-Effekts weichgezeichnet. - 22 - Die Firma Side Effects hat das 3D-Programm Houdini entwickelt, das inzwischen in der Version 9.5.170 vorliegt und hauptsächlich auf Nodes basierend arbeitet. Dieses Programm bietet dem Anwender einen überdurchschnittlich hohen Grad an Kontrolle über sämtliche Aspekte einer 3D-Szene. Die Tiefenschärfe wird hier in der jeweiligen Render-Node eingeschaltet. Depth of Field aktiviert man in der Mantra-Render-Node unter dem Menüpunkt Properties und dem dazugehörigen Unterpunkt Sampling. Bei der RenderMan-Render-Node heißt dieser Unterpunkt nicht Sampling sondern DOF. Kontrolliert wird die Tiefenschärfe mittels des Attributs Focal Length im Reiter View der Kamera, welches die Brennweite bestimmt. Mit den Attributen F-Stop und Focus Distance unter dem Menüpunkt Sampling werden die Blendenzahl und die Position der Fokusebene gesteuert. Eine intuitivere Möglichkeit diese zu steuern, bieten die Kontrollobjekte Frustum Handle und Focus Handle, welche in Kameranähe angezeigt werden und durch kleine kegelförmige bzw. quadratische Anfasser verschoben bzw. skaliert werden können. Der Frustrum Handle steuert die Brennweite und die Begrenzung von Near- bzw. Far-Clipping. Der Focus Handle steuert die Blendenzahl und die Position der Fokusebene. Abb. 15: Houdinis Frustum-Handle (links), Focus-Handle (rechts) Houdini unterstützt beim Rendering die so genannte Motion-Factor-Technik, welche die Shading-Qualität in den unscharfen Bereichen reduziert, was sich zu Gunsten der Render-Zeit - 23 - auswirkt. Zusätzlich gibt es eine Tiefenschärfe-Node für die Compositing-Möglichkeiten, die in Houdini implementiert sind. Diese Node erstellt eine Tiefenschärfemaske, welche beschreibt wie weit sich bestimmte Objekte außerhalb des Fokusbereichs befinden. Diese Maske kann mit Weichzeichnungs-Nodes kombiniert werden. Auch Lightwave 9.3.1 von der Firma Newtek gehört ebenfalls zu den führenden SoftwarePaketen im 3D-Bereich. Der Funktionsumfang bezüglich der Arbeit mit Tiefenschärfe wurde in Version 9.2 erweitert. Aktiviert wird die Tiefenschärfe in den Einstellungen der Kamera unter dem Reiter Stereo and DOF. Hier kann mit den Attributen Focal Distance und Lens F-Stop die Fokusebene und die Blendenzahl kontrolliert werden. Außerdem kann unter Verwendung der Attribute Diaphragam Sides und Diaphragm Roation die Seitenanzahl und Rotation der Blendenlamellen bestimmt werden, die für die Form des Bokeh-Effekts wichtig sind.1 Diese Werte können nicht im Darstellungsfenster durch eine Benutzeroberfläche an der Kamera kontrolliert werden, sondern nur durch die Eingabe von Werten. In der Draufsicht auf die Szene gibt ein gestrichelter Kreis an, wo sich die Fokusebene befindet. Es stehen darüber hinaus auch Helferobjekte zur Verfügung, die mit der Position der Kamera verknüpft sind. In ihren Objekteigenschaften kann das so genannte Depth-of-Field Display aktiviert werden, welches die Größe des Zerstreuungskreises konfigurierbar macht und gleichzeitig im Darstellungsfeld den entsprechenden Fokusbereich visualisiert. Abb. 16: Attribute zum Kontrollieren der Tiefenschärfe in Lightwave 9.3.1 Wie bei 3Ds Max 2008 besteht außerdem die Möglichkeit durch Drücken eines PreviewKnopfes, in Ligthwave MB Preview genannt, eine Vorschau der Tiefenschärfe im 1 Ablan, Daniel M.: Inside Lightwave 8, 2004, S. 357-358 - 24 - Darstellungsfenster des aktuellen Frames zu erzeugen. Diese verschwindet erst, wenn man ein beliebiges Objekt anwählt oder zu einer anderen Bildnummer springt. Neu ist in Lightwave die Funktion DOF/MBlur Preview, die man unter den Kameraeinstellungen findet. Diese sorgt dafür, dass die Vorschauanzeige für Tiefenschärfe immer aktiv bleibt und ermöglicht es dadurch, Tiefenschärfe in so genannten Previews - vom Darstellungsfenster aufgenommene Videos - sehen zu können. Beim Rendern hat der Benutzer die Wahl zwischen verschiedenen Kameramodellen, die das Render-Verfahren beeinflussen. Die Classic-Kamera aktiviert den Scanline-Renderer, bei dessen Verwendung das Hinzufügen von Tiefenschärfe nur mit Hilfe von BildbearbeitungsEffekten nach dem eigentlichen Render-Vorgang möglich ist. Diese Effekte heißen Digital Confusion und Depth-of-Field Blur, und man findet sie im Menü Image Processing. Bei Aktivierung der Perspective-Kamera wird das Bild mittels der Ray-Traycing-Technik berechnet und benötigt die o.g. Post-Effekte nicht. Ein weiteres gängiges 3D-Programm ist Cinema 4D von der Firma Maxon. Die aktuelle Version ist Nummer 10.5. In Cinema 4D wird die Tiefenschärfe durch einen Post-Effekt simuliert. Die Benutzeroberfläche der Kamera ermöglicht das genaue Definieren des Verlaufs von Scharf zu Unscharf vor und nach der Fokusebene. Dies setzt voraus, dass in den Kameraeinstellungen im Reiter Tiefe die Optionen Unschärfe vorne und Unschärfe hinten aktiviert sind. Die Fokusebene wiederum kann entweder mit dem Attribut Zieldistanz oder aber über die Kamerabenutzeroberfläche kontrolliert werden. Um den Post-Effekt Tiefenunschärfe zu verwenden, muss man ihn in den RenderVoreinstellungen unter Effekte aktivieren. Dieser Effekt beinhaltet eine Vielzahl von Einstellungsmöglichkeiten, die das Erscheinungsbild der Tiefenschärfe beeinflussen. So können im Reiter Linsen neben Basiswerten wie Unschärfenstärke und Hintergrund-Unschärfe eine Vielzahl von Attributen zur Kontrolle der Linsenform gefunden werden, die für den Bokeh-Effekt entscheidend sind. Zusätzlich besteht die Möglichkeit, die Objekte in Abhängigkeit von ihren Tiefeninformationen einzufärben. - 25 - Abb. 17: Attribute zum Kontrollieren der Tiefenschärfe in Cinema 4D Maxon selbst nennt in der zugehörigen Hilfe-Dokumentation einige Limitationen: Es entstehen Probleme bei der Darstellung von Unschärfen in Spiegelungen & hinter Transparenzen. Darüber hinaus kann es zu Unstimmigkeiten kommen, wenn der Post-Effekt Glühen nach der Tiefenunschärfe ausgeführt wird. Wenn der Post-Effekt Glühen hingegen vor der Tiefenunschärfe ausgeführt wird, so überschreibt die Tiefenunschärfe komplett den GlühEffekt. Des Weiteren funktioniert die Tiefenunschärfe nicht im Zusammenhang mit PyroCluster und der Post-Effekt Glanzlicht funktioniert nicht im Zusammenhang mit der Tiefenunschärfe. Außerdem sollten man die Tiefenunschärfe nicht aktivieren, wenn man bei der Bildausgabe die Option Alpha-Kanal aktiviert hat, da dies nachteilige Auswirkungen auf den Alphakanal hat.1 Des Weiteren steht 3D-Grafikern das Programm Blender zur Verfügung, welches ein OpenSource-Projekt ist und seit dem Jahr 2000 von einem internationalen Programmierer-Team entwickelt wurde. Die aktuelle Version ist Nummer 2.46. Blender ist kostenlos erhältlich und 1 Vgl. Babb, Paul u.a.: Maxon Dokumentation, 2007 - 26 - beinhaltet einen großen Umfang von Funktionen, die auch in kommerziellen 3DAnwendungen zu finden sind. Tiefenschärfe wird in Blender ebenfalls in Form eines Nachbearbeitungs-Effekts hinzugefügt. Das integrierte Compositing-System bietet die Möglichkeit, die Tiefenschärfe und den BokehEffekt zu kontrollieren. Hierzu dient die seit Version 2.43 im Programm implementierte Node Defocus. Als Eingangsinformation benötigt diese Node ein RGB-Bild und ein Graustufenbild, welche die Tiefeninformationen der jeweiligen Objekte liefern. Neben einer Vielzahl von Linsenformen, welche auch rotiert werden können, lassen sich die Stärke der Unschärfe mit Maxblur und die Größe der Tiefenschärfe mit fStop beeinflussen. Abb. 18: Compositing-Nodes in Blender Die Fokusebene wird über die Kamera kontrolliert, und zwar mittels des Attributes Dof Dist, welches man unter den Kameraeigenschaften findet. Wenn die Option Limits aktiviert ist, zeigt ein gelbes Kreuz entlang der Blickachse der Kamera an, wo sich die Fokusebene befindet. - 27 - Die Firma Softimage hat das Programm XSI entwickelt, welches zum jetzigen Zeitpunkt in der Version 6.5 vorliegt. XSI bietet die Möglichkeit, über einen s.g. Linsen-Shader den Tiefenschärfe-Effekt mittels Ray-Tracing zu interpolieren. Der Anwender kann die allgemeine Intensität der Tiefenschärfe kontrollieren und zwischen den Einstellungsvarianten Lens Mode, Custom Mode und Automatic Mode wählen. Beim ersten Modell können Brennweite, Blendenzahl, Fokusebene und Größe des Zerstreuungskreises bestimmt werden, welche sich wie bei einer realen Kamera verhalten. Der Custom Mode definiert die Tiefenschärfe mittels der Attribute Near Focus, Far Focus und Circle of Confusion (Zerstreuungskreis). Im Automatic Mode kann nur die Entfernung der Fokusebene zur Kamera kontrolliert werden. Ob die getroffenen Einstellungen korrekt sind, kann der Nutzer über ein Vorschaurendering feststellen. Es kann hierbei ein Preview-Rendering des gesamten Bildes erstellt werden oder eine bestimmte Region im Darstellungsfenster definiert werden. Bei beiden Varianten wird das jeweilige Rendering aktualisiert sobald sich Werte verändern. Zwei weitere Möglichkeiten für die Erzeugung von Tiefenschärfe bestehen in XSI darin, mit Abb. 19: Attribute zum Kontrollieren der Tiefenschärfe einem Post-Effekt zu arbeiten, der über ähnliche Werte wie der Linsen-Shader verfügt, in XSI oder das integrierte Compositing-Werkzeug FX-Tree zu nutzen. Den dafür notwendigen Operator, welcher Depth of Field heißt, findet man in der Rubrik Optics. Der Aufbau des Compositings erfolgt hierbei ähnlich wie bei Blender. Es ist darüber hinaus möglich, den Linsen-Shader und den Post-Effekt zu kombinieren, um bei einer geringen Sample-Rate - 28 - trotzdem auf qualitativ gute Ergebnisse zu kommen. Bei keiner der in XSI integrierten Methoden, kann der Bokeh-Effekt gesteuert werden. Es gibt ebenso wenig eine Anzeige im Darstellungsfeld, die das Kontrollieren der Tiefenschärfe erleichtert. Programme / Kriterien Maya 2008 3Ds Max 2008 Houdini 9.5.170 Lightwave 9.3.1 Cinema 4D R10.5 Blender 2.46 XSI 6.5 Tiefenschärfe per Sampling + + + + - - + Tiefenschärfe per Post-Effect + + + + + + + Tiefenschärfe per Jittering - + - - - - - Visualisierungshilfen im Darstellungsfenster - - ++ + + + - Kontrollen im Darstellungsfenster - + ++ - + - - Echtzeitvorschau im Darstellungsfenster - + - +++ - - - Kontrolle über Bokeh-Effekt - - + ++ + + - Bewertung* 2 5 7 8 4 3 2 Preis** 7.349 € 3.420 € 5.104 € 635 € 684 € kostenlos 3.187 € *Je höher die Bewertung, desto besser **Preise beinhalten keine MwSt. + = vorhanden ++ = umfangreich +++ = herausragend - = nicht vorhanden Den höchsten Grad an Benutzerfreundlichkeit und Kontrollumfang bieten die Programme Houdini und Lightwave. Die zwei Darstellungsarten der Houdini-Kamera sind einfach zu aktivieren und geben dem Anwender einen klaren Eindruck davon, wie sich die Tiefenschärfe in der aktuellen Szene verhält. Außerdem ermöglichen sie es, die Tiefenschärfe durch die jeweiligen Kontrollobjekte effizient und schnell zu kontrollieren. - 29 - Lightwave überragt die anderen Programme jedoch aufgrund seiner OpenGL-gestützten Echtzeit-Vorschau, welche auf der Jittering-Methode basiert. Die dadurch entstehende Flexibilität bei der Beurteilung von Tiefenschärfe in Animationen, welche insbesondere bei Fokus-Verlagerungen von Vorteil ist, sorgt für eine hohe Zeitersparnis. Zusätzlich bietet Lightwave die Möglichkeit, den Bokeh-Effekt flexibler als alle anderen Programme zu definieren, da die Seitenanzahl der jeweiligen Linse frei einstellbar ist und diese außerdem gedreht werden kann. Die kostenintensiven 3D-Programme Maya, 3Ds Max und XSI liefern in diesem Vergleich ein eher enttäuschendes Ergebnis. Besonders Maya, welches die geringste Benutzerfreundlichkeit beim Einstellen der Tiefenschärfe bietet. Die Tiefenschärfe, welche der Scanline-Renderer von 3Ds Max hervorbringt, erzeugt keinen Bokeh-Effekt und ist hinsichtlich der Ästhetik der Unschärfe nicht mehr zeitgemäß. XSI schließt hier, dank seiner performanten Rendervorschau im Darstellungsfenster, noch am besten ab. Bei Verwendung dieser drei Programme ist es meistens notwendig, zusätzliche Anwendungen zu erwerben, die auf Tiefenschärfe spezialisiert sind. Hierzu mehr in Kapitel 2.2.1. - 30 - 3. In der Praxis 3.1 Arbeitsweisen von Unternehmen Um eine Aussage treffen zu können, wie in der Branche gearbeitet wird, wurden drei Firmen unterschiedlicher Größe in Deutschland befragt und die Ergebnisse ausgewertet. Hierfür wurde ein Fragenkatalog erarbeitet, der von einer für Tiefenschärfe zuständigen Person im Unternehmen ausgefüllt wurde. Zum einen Bumba Animation in Brühl bestehend aus einer Person, des Weitere 4k Animation in Berlin, ein mittelgroßes Unternehmen mit bis zu 35 Mitarbeitern und das Großunternehmen Pixomondo, welches Filialen in Berlin, Frankfurt am Main, London, Ludwigsburg, Los Angeles und München besitzt. Die drei befragten Unternehmen bestätigten, dass sie Tiefenschärfe verwenden, insbesondere um „realistische Ergebnisse zu erzeugen“1. Das Kleinunternehmen verwies allerdings auf einen ausreichenden zeitlichen Rahmen als Bedingung für die Herstellung von Tiefenschärfe. Alle drei Unternehmen gaben an, sie würden für Produktionen, die Tiefenschärfe erfordern, kein spezielles 3D-Programm verwenden, sondern das 3D-Stammprogramm einsetzen, welches auch sonst bei 3D-Animationen genutzt wird. Es handelt sich dabei um die Programme Maya und 3Ds Max. Das Unternehmen 4k Animation gab dabei an den Renderer PRman von Pixar zu verwenden. Auf die Frage, ob die Unternehmen Tiefenschärfe beim Rendering in dem 3D-Programm aktivieren und in das Bild rechnen, verneinten alle Unternehmen. Bumba Animationen merkte hierbei allerdings an, bei genügend Projektzeit dies gern tun zu wollen. Somit bejahten alle Unternehmen die Frage, ob sie im Compositing die Tiefenschärfe erzeugen. Hierbei wurde die Flexibilität genannt, die man dadurch über das finale Aussehen 1 E-Mail: Mittelhockamp, Bernd von 4k-Animation Betreff: Diplom Tiefenschärfe / Fragebogen Abruf am 2008-07-23 - 31 - erhält. Die dazu notwendige Maske erzeugen die Firmen in Form eines Tiefenkanals. Dieser Pass ist bei Bumba Animation nicht gefiltert und doppelt so groß berechnet worden, wie für die Produktion notwendig. Neben den Compositing Programmen Adobe After Effects und Eyeon Fusion wurde das Effekt-Plug-In Lenscare verwendet und, wie Pixomondo angab, firmeninterne Tools. Zur Unterstützung beim Arbeiten mit Tiefenschärfe wurden diverse Skripte und TCL Oberflächen für PRman entwickelt. Auf die letzte Frage, ob sie das Arbeiten mit Tiefenschärfe in 3D-Programmen benutzerfreundlich finden, antworteten alle mit nein. Die Unternehmen wünschen sich zur Verbesserung eine schnelle Vorschaufunktion, die Möglichkeit im Darstellungsfenster den Fokuspunkt schnell kontrollieren zu können und eine Visualisierung der unterschiedlichen Schärfebereiche. Die drei Unternehmen bieten neben der Produktion von 3D-Animationen ohne Realfilmanteil auch visuelle Effekte (VFX) an. In Filmen mit vielen solcher digitaler Effekte, bei denen 3DObjekte in den Realfilm eingesetzt werden müssen, ist es oft zeitaufwendig, die computergenerierte Unschärfe genau mit der des Realfilms anzupassen. Selbst wenn alle Kameradaten beim Dreh bekannt sind, kann dies oft schwierig sein wie auch Compositor Aruna Inversin zu dem Kinofilm „Charlottes Web“ berichtet: „There were numerous depth of field issues, but I can see how it was tough to focus on a very narrow window, yet try to keep the creatures in focus. Many times it had to be faked. [...] After seeing the shots again after eight months, they were pretty good. It was amazingly tough to pull off some of the depth of field and integration shots with Templeton and his surrounding environment, but I think you'll be pleasantly surprised.“1 Bei der Produktion zum Musikvideo You Only Live Once von den Strokes berichtet Louis Katz, der Visual Effects Supervisor dieser Produktion: „Fortunately the new After Effects has a lens blur tool allowing us to achieve a more realistic blur for our depth of field shots.“2 1 Inversin, Aruna: the digitalgypsy VFX Blog http://www.digitalgypsy.com/vfxlog/archives/2006/12/ 2006-12-11, Abruf am 2008-07-23 2 Katz, Louis: Visual Effects Blog http://katzfx.blogspot.com/2007_06_01_archive.html 2007-06-01, Abruf am 2008-07-23 - 32 - Bei stereoskopischen 3D-Produktionen ist die Arbeitsweise eine Andere. Aufnahmen werden im Augenabstand voneinander berechnet und dürfen keine unscharfen Bereiche enthalten. Je weiter entfernt sich Objekte von der Fokusebene befinden, umso verschwommener erscheinen sie bei der Betrachtung durch eine Polarisationsbrille. Bei so einer Brille sieht jedes Auge ein eigenes Bild; und unser Gehirn gleicht beide miteinander ab so dass die Tiefenschärfe im Kopf entsteht. Die Möglichkeit, in 3D-Animationen jede Szene eines Films komplett scharf berechnen zu können, ist ein großer Vorteil für die Erzeugung von Tiefenschärfe in der Stereoskopie, der bei realen Dreharbeiten nicht existiert. Hugh Murray, Imax Vizepräsident der technischen Produktion nennt weitere Vorteile bei der Produktion von stereoskopischen Filmen in 3D: „Another reason 3D is more comfortable to watch in CG than live-action is that cameras don't really exist in CG. They're just mathematical entities. So we had complete freedom to do anything we liked with the distance between the right and left-eye cameras -- the interocular distance -- and that became an animate-able parameter that we controlled constantly through the film.“1 1 Murray, Hugh: Cinefex weekly http://www.cinefex.com/weeklyupdate/mailings/45_11232004/web.html 2004-11-23, Abruf am 2008-07-23 - 33 - 3.2 Vorschlag zur Verbesserung der Arbeitsweise 3.2.1 Funktionsumfang des Skripts pb_dofGUI Nach Auswertung der Ergebnisse des vorherigen Kapitels kann davon ausgegangen werden, dass die meisten Produktionen, unabhängig von ihrer Größe, Tiefenschärfe im Compositing erzeugen. Hierfür werden in der Regel Tiefenkanäle verwendet. Ein weitere Arbeitsweise wird im Folgenden erläutert, die auch auf der Verwendung von Graustufenbildern basiert und das im Rahmen dieser Arbeit eigens entwickelten Skripts zur Hilfe zieht. Um die Benutzerfreundlichkeit zu erhöhen, müssen besonders für das 3D-Programm Maya neue Werkzeuge erstellt werden, weil es als Industrie-Standard gilt. Es ist eine optische Darstellung notwendig, die dem Anwender deutlich anzeigt wo sich die Fokusebene befindet, welches Ausmaß der Verlauf von scharf zu unscharf hat und ab welcher Entfernung Bildinhalte komplett verschwimmen. Diese Grenzen muss der Anwender intuitiv und einfach bestimmen und verändern können. Um eine Schärfenverlagerung zu simulieren, müssen diese Grenzen zusätzlich animierbar sein. Unter Berücksichtigung dieser Punkte wurde mit Hilfe von Mayas Skriptsprache MEL eine Benutzeroberfläche geschaffen, die auf die oben genannten Kriterien eingeht und im Folgenden näher erläutert wird. Das Skript pb_dofGUI, bestehend aus 687 Zeilen Programmcode, erzeugt orthogonal zur Blickrichtung der Kamera drei gewölbte NURBS-Flächen. Die Form der Flächen entspricht dem Ausschnitt einer Kugel. Es wird hier ein Lochkameramodell simuliert, kein Linsenmodell, wie z.B. „dünne Linse“1 oder andere komplexe Linsen. Die drei Flächen sind durch schwarze, graue und weiße Farbigkeit kodiert und werden automatisch in Abhängigkeit von der Entfernung zur Kamera skaliert. Je näher eine Fläche der Kamera ist, desto kleiner wird sie dargestellt und je weiter entfernt, desto größer. Diese Größenabstufungen visualisieren das Sichtfeld der jeweiligen Kamera. Nach Ausführen des Skripts ist die kleinste Fläche schwarz und 1 Hecht, Eugene: Optik, 2002, S. 156 - 34 - symbolisiert die Fokusebene. Diese stellt die Achse dar, an der alle darauf folgenden Flächen für die spätere Berechnung der Tiefenschärfe gespiegelt werden. Die gespiegelten Flächen werden nicht im Darstellungsfeld visualisiert. Die nächst größere, graue Fläche öffnet einen Raum, der durch ihre Spiegelung geschlossen wird. Alle diesem Raum inbegriffenen Objekte oder Flächen von Objekten befinden sich im Fokus der Kamera und werden scharf dargestellt. Dieser Fokusbereich existiert bei einem realen Kameramodell mit Linse nicht. Eine Linse fokussiere präzise einen konkreten Punkt - berichtet Steve Writh von seinen Erfahrungen.1 Abb. 20: Benutzeroberfläche durch das Skript pb_dofGUI Sind die Positionen der grauen und schwarzen Fläche identisch, so wird der Fokusbereich auf eine Ebene reduziert. Dies entspricht wiederum der Funktionsweise einer realen Kamera. Darüber hinaus haben die graue Fläche und ihre Spiegelung noch eine weitere Funktion: Sie markieren jeweils den Punkt, von dem aus die Schärfe abnimmt. Die dritte und größte Fläche ist weiß und visualisiert das Ende des Schärfeverlaufs vor und hinter der Fokusebene. Alles, was hinter der weißen Ebene liegt, ist unscharf. Die Positionierung der NURBS-Flächen erfolgt über zwei Methoden. Zum einen kann der 1 Wright, Steve: Digital Compositing for Film and Video, 2002, S. 146 - 35 - Abstand der einzelnen Flächen zur Kamera mittels numerischer Werte genau bestimmt werden. Verändert der Anwender die Position der Kamera, z.B. bei einer Animation, so bleibt der Abstand der Flächen zur Kamera unverändert. Zum anderen besteht die Möglichkeit, die Flächen von der Kamera zu lösen und frei im Raum anzuordnen. Wird die Kamera in diesem Modus bewegt, so bleibt die Position der NURBS-Flächen davon unbeeinflusst. Zusätzlich besteht die Möglichkeit, die NURBS-Flächen horizontal und vertikal zu skalieren. Sie werden hierbei nicht in X-, Y- oder Z-Richtung transformiert, sondern die Form der Kugel wird erhalten, und nur der Ausschnitt vergrößert oder verkleinert sich. Die Deckkraft der Flächen ist ebenfalls über ein Attribut variierbar und kann vollständig opak sein oder auch komplett transparent. Alle oben aufgeführten Eigenschaften der Flächen sind animierbar. Abb. 21: Attribute zur Kontrolle der Benutzeroberfläche Unter Verwendung eines Shaders1, der die Entfernung von den jeweiligen Objekten zur Kamera in Relation zu der Position der drei Flächen setzt, kann ein Graustufenbild berechnet werden. Auf diesem Bild werden alle Objekte, die auf der Fokusebene bzw. im Fokusbereich liegen, schwarz dargestellt. Dagegen werden alle Objekte, die im Bereich des Schärfeverlaufs liegen, heller dargestellt. Der Helligkeitsgrad steigt hierbei proportional zu der Entfernung der Objekte von der grauen Fläche. Alle Objekte, die hinter der weißen NURBS-Fläche liegen, werden weiß dargestellt. Das Graustufenbild dient dazu, als Maske die Tiefenschärfe im Compositing-Programm zu erzeugen. Dieses Verfahren wurde im Kapitel 2.2.1 näher erläutert. 1 Esquive, Felipe: fastDOF 1.0 http://highend3d.com/renderman/downloads/shaders/fastDOF-3526.html 2005-04-12, Abruf am 2008-07-19 - 36 - 3.2.2 Entwicklung des Skripts Die NURBS-Flächen, die durch das Skript generiert werden, sind das wesentliche Element der Benutzeroberfläche und benötigen die Krümmung einer Kugel, damit ihre Darstellung mit dem Ergebnis im Graustufenbild übereinstimmt. Ihre Form wird, basierend auf Grundlagen der sphärischen Trigonometrie, berechnet. Da der Kugelgrundkörper in Maya zwar die Möglichkeit bietet, ein Kugelzweieck mittels der Attribute start sweep und end sweep zu erzeugen, aber nicht die Option beinhaltet, ein Kugelviereck zu visualisieren, wurden die oben genannten NURBS-Flächen konstruiert, welche das Bildfenster der Kamera genau abdecken. Abb. 22: Kugelobjekt in Maya durch die Sweep-Attribute kontrolliert Zum Erzeugen einer Fläche ist das Konstruieren von drei Kurven notwendig, welche die obere und untere Kante, sowie die Wölbung beschreiben. Es werden drei Kreise, die auf der XZEbene liegen, mit dem Radius 1 im Koordinatenursprung erzeugt. eval ("circle -n " + $TCurveName + "_dofGUI_top -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1"); eval ("circle -n " + $TCurveName + "_dofGUI_center -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1"); eval ("circle -n " + $TCurveName + "_dofGUI_bottom -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1"); - 37 - Es gilt, die Kreise mit dem Attribut sweep zu verkürzen, damit die entstehenden Kreisbögen dem horizontalen Bildwinkel entsprechen. Für den mittleren Kreisbogen kann der Bildwinkel der Kameralinse verwendet werden. float $curveSweep = eval( "camera -q -hfv " + $cameraName ); eval ( "setAttr " + $TCurveName + "_make_dofGUI_center.sweep " + $curveSweep ); Durch die perspektivische Verzerrung an den Rändern des Kamera-Bildfensters wirken die Kreissegmente, welche die obere und untere Kante beschreiben, größer trotz Verwendung des desselben horizontalen Bildwinkels. Für die richtige Größe wird zu erst das diagonale Aufnahmeformat berechnet. Dies erfolgt unter der Verwendung des Satzes von Pythagoras: Hierbei ist a das horizontale Aufnahmeformat und b das Vertikale. Beide Werte gibt Maya in Zoll aus. Für weitere Berechnungen werden sie im Skript in Millimeter umgerechnet. float $hfa = eval( "camera -q -hfa " + $cameraName )*2.54*10; float $vfa = eval( "camera -q -vfa " + $cameraName )*2.54*10; float $dfa = sqrt( pow($hfa,2) + pow($vfa,2) ); Da Maya den horizontalen und vertikalen Bildwinkel dem Benutzer zur Verfügung stellt, aber nicht den Diagonalen, muss dieser - mit Hilfe folgender Formel - berechnet werden: Hierbei ist f die Brennweite der Kamera und d das zuvor berechnete, diagonale Aufnahmeformat. Der Arkustangens muss nicht mit zwei multipliziert werden, da im weiteren Verlauf nur die Hälfte des diagonalen Blinkwinkels das Kugeldreieck erzeugt. global proc float angleOfCurve( string $cameraName ) { float $camFL = eval( "camera -q -fl " + $cameraName ); float $c = atand($dfa/(2*$camFL)); - 38 - Der diagonale Bildwinkel c und vertikale Bildwinkel a bilden nun mit der fehlende Seite b ein rechteckiges Kugeldreieck. Um Seite b zu berechnen gilt nach der Neper-Regel: Hierbei ist β der Winkel zwischen der Seite a und c und lässt sich durch die Formel berechnen: float $vfv = eval( "camera -q -vfv " + $cameraName ); float $cotc = cosd($c) / sind($c); float $beta = acosd( tand($vfv/2) * $cotc ); float $b = sind( $c ) * sind( $beta ); Für den gesamten oberen oder unteren Bildwinkel muss dieser verdoppelt werden. return asind( $b )*2; } Die Größe des oberen und unteren Kreissegments ist hierdurch bekannt, kann zugewiesen werden und auf die korrekte vertikale Höhe, mittels des vertikalen Blickwinkels gebracht werden. float $curveSweepVertAOV = eval( "camera -q -vfv " + $cameraName ); float $TAngleOfGroup = $curveSweepVertAOV / 2; float $TAngleOfCurve = angleOfCurve( $cameraName ); eval ("setAttr " +$TCurveName+ "_make_dofGUI_top.sweep " +$TAngleOfCurve); eval ("setAttr " +$cameraOnly+ "_dofGUI|curves_dofGUI|circle_dofGUI|" +$TCurveName+ "Grp|" +$TCurveName+ "_angle_dofGUI_top.rotateX " +$TAngleOfGroup); eval ("setAttr " +$TCurveName+ "_make_dofGUI_bottom.sweep `getAttr " +$TCurveName+ "_make_dofGUI_top.sweep`"); $TAngleOfGroup *= -1; eval ("setAttr " +$cameraOnly+ "_dofGUI|curves_dofGUI|circle_dofGUI|" +$TCurveName+ "Grp|" +$TCurveName+ "_angle_dofGUI_bottom.rotateX " +$TAngleOfGroup); - 39 - Abb. 23: Die Kurven zur Erzeugung einer NURBS-Fläche Mit Hilfe des in Maya integrierten Loft-Werkzeuges entsteht eine NURBS-Oberfläche, deren Form durch die Kreissegmente bestimmt wird. eval ( "loft -n " + $TPlaneName + " -ch 1 -u 1 -c 0 -ar 1 -d 3 -ss 4 -rn 0 -po 0 -rsn true " + $TCurveName01 + " " + $TCurveName02 + " " + $TCurveName03 ); Die Fläche kann nachträglich durch das Verändern der Kreisbogengröße skaliert werden. - 40 - 3.2.3 Vorteile des Skripts und Möglichkeiten zur Erweiterung Das Skript pb_dofGUI ist eine Benutzeroberfläche, mit deren Hilfe unterschieden werden kann, welche Objekte sich in welchem Schärfebereich befinden. Dies war mit Maya zuvor nicht möglich. Dabei lassen sich die Schärferäume durch zwei Methoden in ihrer Größe verstellen und an die jeweiligen Anforderungen einer Szene anpassen. Hierbei muss der Nutzer keine Zahlenwerte eingeben, sondern kann die NURBS-Flächen frei im Raum positionieren. Die Schärfebereiche können animiert werden, wobei dem Anwender immer eine visuelle Darstellung der unterschiedlichen Schärfe-Ebenen zur Verfügung steht. Das Skript bietet darüber hinaus noch weitere Möglichkeiten, um die Schärfebereiche zu optimieren. Durch Skalierung der NURBS-Flächen mit den Attributen Size H für die horizontale Größe, sowie Size V für die vertikale Größe kann sich der Anwender mehr Übersicht über den Schärfeverlauf in seiner Szene verschaffen. Mit Hilfe des Attributs Opacity kann der Benutzer je nach Bedarf die Deckkraft der Flächen beeinflussen und sie ausblenden, sofern sie nicht mehr benötigt werden. Es ist des Weiteren möglich, die visuelle Benutzeroberfläche nach Installation des Skripts an jedem Kameratyp in Maya zu fixieren und so in jeder Einstellung individuell die gewünschte Tiefenschärfe zu definieren. Diese Flexibilität im Umgang mit Tiefenschärfe wurde zuvor von Maya nicht unterstützt. Es bestehen zusätzlich Möglichkeiten, das Skript zu erweitern. Zum Beispiel wäre es sinnvoll, in zukünftigen Versionen mehrere Kameras pro Szene verwalten zu können und die Möglichkeit zu haben, vor ein und dieselbe Kamera mehrere visuelle Oberflächen zu platzieren. In diesem Fall wären Werkzeuge zum Verwalten der einzelnen Oberflächen gefordert. Des Weiteren sollte der sticky-off-Modus, welcher es dem Anwender ermöglicht die NURBSFlächen frei zu positionieren, während einer Animation aktivierbar und deaktivierbar sein. Diese Funktion käme dann zum Tragen, wenn in einer Animation die NURBS-Flächen zunächst der Kamerabewegung folgen, aber ab einem gewissen Zeitpunkt losgelöst von ihr fungieren sollen. - 41 - Es sollten darüber hinaus durch das Bewegen der schwarzen NURBS-Fläche (Fokusebene) optimalerweise auch die anderen Flächen proportional verschoben werden, damit beim Einstellen der Tiefenschärfe Zeit gespart wird. Denkbar wäre auch, die einzelnen Bereiche, Scharf, Schärfeverlauf und Unscharf als geschlossene Räume zu visualisieren und nicht nur ihre Grenzen darzustellen. In einem gesonderten Anzeigemodus wäre es denkbar, die jeweiligen Objekte einzufärben, je nach dem in welchem Schärfebereich sie sich befinden. Um dem Anwender eine noch performantere Benutzeroberfläche zu gewährleisten, wäre die Entwicklung eines Maya-Plug-Ins mit der Programmiersprache C++ notwendig, bei der die NURBS-Flächen direkt über OpenGL im Darstellungsfenster angezeigt wird. Weiterhin wäre es denkbar, die Benuteroberfläche so zu erweitern, dass man zwei Fokusebenen definieren kann. Auch, wenn dies in der Realität nicht möglich ist, könnte man hierdurch interessante Effekte erzeugen. Um dies genau kontrollieren zu können, wäre ein zweites Set von NURBS-Flächen denkbar, die Ihre Positionsinformationen an einen Shader weitergibt, der diese Informationen verarbeiten kann und ein Graustufenbild erzeugt. - 42 - 4. Zukunft der Tiefenschärfe in 3D 4.1 Neue Werkzeuge Es folgt eine Betrachtung von möglichen Werkzeugen, die mit dem heutigen Stand der Technik entwickelt werden können oder schon entwickelt wurden, aber noch keine Verbreitung gefunden haben. Diese Werkzeuge haben das Ziel, den Umgang mit Tiefenschärfe effizienter zu gestalten. Die Vorschaufunktionen des Darstellungsfensters müssen erweitert und rechenintensivere Aufgaben verstärkt an die Grafikkarten abgegeben werden. Es wäre wünschenswert, wenn Programmierer mehr Zugriff auf das Darstellungsfenster erhalten. In Maya besteht die Möglichkeit, einen komplett eigenen High-Quality-Renderer zu programmieren, der steuert, wie Objekte im Darstellungsfenster angezeigt werden. Hierdurch könnte eine umfangreichere Vorschaufunktion der Tiefenschärfe realisiert werden. Das bedeutet allerdings, dass der Entwickler die Abbildung von allen Objekten, die das Darstellungsfenster normalerweise wiedergibt, ebenfalls programmieren muss. Dadurch entsteht ein sehr hoher Arbeitsaufwand. Vergleicht man die führenden 3DAnwendungen in Hinsicht ihrer Erweiterungsmöglichkeiten, befindet sich Maya an der Spitze, so dass für andere 3D-Programme oft gar nicht erst die Möglichkeit besteht, eine solche Erweiterung durchzuführen, unabhängig vom Arbeitsaufwand. Eine Alternative besteht in der Entwicklung eines Plug-Ins für Maya, das eine Vorschau der Tiefenschärfe in Form des Multi-Pass-Verfahrens ermöglicht, ähnlich der Funktion, die 3Ds Max und Lightwave bieten. Hierbei kann die Kamera um den Fokuspunkt unregelmäßig rotiert werden; nach jeder Rotation wird ein Bild vom Darstellungsfenster gespeichert. Die Bilder werden miteinander verrechnet und auf das Darstellungsfenster projiziert. Dieses Werkzeug verringert den Arbeitsaufwand und könnte die Erzeugung von Tiefenschärfe effizienter gestalten. Diese Methode hat aber dieselben Limitationen, was die Beständigkeit der - 43 - Vorschauanzeige angeht, wie sie im Kapitel 2.2.2 im Zusammenhang mit 3Ds Max beschrieben wurden. Einen anderen Ansatz liefern progressive Renderer wie FPrime für Lightwave oder Maxwell für 3Ds Max und Maya. Diese Renderer arbeiten auf der Basis von Ray Tracing und senden pro Durchgang eine bestimmte Anzahl von Strahlen zur Ermittlung von Pixel-Farbwerten in den 3D Raum. Mit jedem Durchgang wird die Genauigkeit des vorherigen Ergebnisses verbessert, wodurch die Bildqualität zunimmt. Der Anwender kann bestimmen, wie viele Durchgänge der Renderer ausführen soll. Zu Beginn ist das Bild grob aufgelöst und wird mit jedem Rechendurchgang detailreicher und die Kanten stärker geglättet. Der große Vorteil von FPrime liegt in seinem eigenen Vorschaufenster, das nach demselben Prinzip funktioniert, wie oben beschrieben, nur dass der Anwender das Resultat eines jeden Rechendurchgangs sofort sehen kann. Der Nutzer kann zuschauen, wie das Bild immer feiner aufgelöst wird. Dies erinnert an das Laden von progressiven JPEG-Dateien aus dem Internet unter Verwendung einer geringen Bandbreite. Die ersten Informationen, die von der jeweiligen JPEG-Datei geladen werden, geben das Bild nur unscharf wieder; es wird umso schärfer, je mehr Informationen von der Bilddatei geladen werden. Dieses Verfahren findet im Internet gegenwärtig wenig Anwendung bzw. wird nicht wahrgenommen, da in der Regel genügend Bandbreite vorhanden ist um Bilder schnell zu laden. Für das Arbeiten mit 3D-Anwendungen bedeutet das, dass der Nutzer selbst entscheiden kann, wie viel Zeit er einem Vorschau-Rendering gibt, um seine Einstellungen beurteilen zu können. Das Vorschaufenster von FPrime kann sämtliche Effekte wie Licht, Reflektion, Refraktionen, Occlusion bis hin zur Tiefenschärfe mit Bokeh-Effekt darstellen. Das Vorschaufenster erlaubt es dem Nutzer, dem Renderer beim Arbeiten zuzuschauen. Das Verfahren ähnelt der Arbeitsweise von s.g. interaktiven Renderern, wie z.B. Mayas IPR, bei dem aber viele der o.g. Effekte nicht dargestellt und auch Objekte nicht verschoben werden können, ohne das Bild bzw. einen Bildausschnitt erneut berechnen zu müssen. XSI verfügt über eine Render-Vorschau, bei der komfortabel die Qualität eines Renderings kontrolliert - 44 - werden kann. Sie zeigt das Bild jedoch erst nach der fertigen Berechnung an, wodurch es, im Vergleich zur progressiven Methode, länger dauert, bis der Anwender das Resultat seiner Einstellungen beurteilen kann. Das kostet Zeit und Geld in einer Produktion. Abb. 24: Interaktive Rendervorschau mit FPrime Weiterhin ist die Entwicklung eines Werkzeugs denkbar, welches bei der Tiefenschärfe helfen kann, den Speicherbedarf beim Rendern zu senken. Hierfür wird ein Level-of-Detail-Verfahren1 verwendet. Es ersetzt hochaufgelöste Drahtgittermodelle (3D-Objekte), abhängig von deren Entfernung zur Kamera, durch niedriger aufgelöste. So können während der Laufzeit des Render-Vorgangs Objekte automatisch ausgetauscht werden, wenn sie sich in den unscharfen 1 Vgl. Lebke, David u.a.: Level of Detail for 3D Graphics, 2003, S. 236-237 - 45 - Bildbereichen befinden. Das würde Speicherkapazität sparen, die Berechnung der Tiefenschärfe beschleunigen und könnte auch zu schnelleren Ergebnissen bei EchtzeitAnwendungen führen. Je größer die Auflösung des Materials ist, auf das Tiefenschärfe angewandt werden soll, umso aufwendiger ist die Berechnung. Große Studios, die in Kinoauflösungen produzieren, entwickeln eigene Lösungen, um Tiefenschärfe effizienter kontrollieren zu können und zudem größeren Spielraum bei der kreativen Verwendung zu erlangen. Während der Produktion des Animationsfilms Cars entwickelte Pixar einen Algorithmus, mit dem eine Echtzeit-Vorschau der Tiefenschärfe in Kinoauflösung dargestellt werden kann.1 Der Algorithmus verwendet für die Berechnung der unscharfen Bereiche eine Simulation auf Basis der WärmeleitungsGleichung aus der Wärmelehre der Physik. Diese wird von dem Prozessor der Grafikkarte, unter Verrechnung mit dem Tiefenkanal, übernommen. Diese Lösung von Pixar dient der Echtzeit-Visualisierung von Tiefenschärfe. Im folgenden Kapitel 4.2 werden weitere Lösungsansätze für die Herausforderung Tiefenschärfe in Echtzeit zu visualisieren, vorgestellt. 4.2 Tiefenschärfe in Echtzeit Eine exakte Berechnung der Tiefenschärfe mit Hilfe von Ray Tracing ist bisher bei EchtzeitAnwendungen (z.B. Computerspielen) nicht möglich. Die Rechenleistung steht für eine Echtzeit-Nutzung nicht zur Verfügung. In Computerspielen wurden verschiedene Techniken entwickelt, die denen in Kapitel 2.1 ähneln. Dazu zählt das Verfahren Accumulation-Buffer Depth of Field2, eine für Echtzeit optimierte Form der Multi-Pass-Technik. 1 Vgl. Kass, Michael, Lefohn Aaron, u.a.: Interactive Depth of Field Using Simulated Diffusion on a GPU http://graphics.pixar.com/DepthOfField/paper.pdf Abruf am 2008-07-22 2 Vgl. Möller, Thomas und Haines, Eric: Real-Time Renderin, 1999, S. 83 - 46 - Eine weitere und ältere Technik sei an dieser Stelle kurz erläutert. Mit der MIP-MappingTechnik kann Tiefenschärfe in Grafik-Engines begrenzt simuliert werden. Hierbei werden Texturen verkleinert und in unterschiedlichen Größen im Grafikspeicher bereitgehalten. Je weiter sich ein Objekt von der Fokusebene entfernt befindet, umso niedriger ist die Textur aufgelöst, die darauf projiziert wird.1 Eine niedriger aufgelöste Textur beinhaltet weniger Details und wirkt unscharf. So kann der Eindruck von Tiefenschärfe erzeugt werden. Jedoch entstehen Probleme mit Objekten, die sowohl im Fokusbereich als auch im Unschärfebereich liegen. Es entsteht eine Unterbrechung im Schärfeverlauf, weil die Textur nur gleichförmig unscharf sein kann. Spiele-Entwickler verwenden Tiefenschärfe in Computerspielen als Stilmittel in Zwischensequenzen, die mit Hilfe der Spielegrafik dargestellt werden. Eingesetzt wird die Tiefenschärfe, um den Fokus des Spielers auf eine bestimmte Stelle zu lenken, die visuelle Qualität der Sequenz zu erhöhen und filmischer zu wirken. Ein Beispiel hierfür ist das Computerspiel Witcher. Abb. 25: Tiefenschärfe in einer Zwischensequenzen des Computerspiels Witcher 1 Vgl. Cant, Richard; Chia, Nathan; Al-Dabass, Daid: New anti-aliasing and depth of field techniques for games http://ducati.doc.ntu.ac.uk/uksim/dad/webpagepapers/Game-18.pdf Abruf am 2008-07-23 - 47 - Über Zwischensequenzen hinaus ist der Einsatz schwierig, da das Programm nicht weiß, worauf der Spieler gerade seinen Blick fokussiert und somit die aktuelle Fokusebene nicht definiert werden kann. Eine Studie von Dr. Anatole Lecuyer u.a. an der Universität von Beaulieu untersucht die Problematik.1 Ein System zum Verfolgen der Augenbewegung ist notwendig, um die Position der Fokusebene im 3D-Raum berechnen zu können. Das Problem ist momentan nicht lösbar, weil ein solches System zu kostspielig und nicht verbreitet ist. Bei Spielen aus der Ich-Perspektive, insb. Kampfspiele, ist der Anwender meist auf die Bildmitte fokussiert. Berechnet man für einen rechteckigen Bereich in der Bildmitte die Entfernung vom Spieler zum anvisierten Objekt, kann man diese als Fokusebene definieren und abhängig von der Entfernung der anderen Objekte zur Fokusebene, dementsprechend unscharf darstellen. Weiter wird in der Studie beschrieben, wie Objekte, die sich am Bildschirmrand befinden, unscharf gezeichnet werden. Dies ist dem menschlichen Sehvermögen nachempfunden, bei dem Objekte am Rand des Sichtfeldes unscharf wahrgenommen werden. Abb. 26: Quake 3 mit Tiefenschärfe Die Verwendung von Tiefenschärfe wird mit steigender Prozessorkraft und besseren Algorithmen weiter in Echtzeitanwendungen, wie Computerspielen, Einzug halten.2 1 Vgl. Dr. Lécuyer, Anatole u.a.: Depth-of-Field Blur Effects for First-Person Navigation in Virtual Environments http://www.irisa.fr/bunraku/GENS/alecuyer/hillaire_vrst_07_short.pdf 2007; Abruf am 2008-07-23 2 Kass, Michael, Lefohn Aaron, Owens, John: Interactive Depth of Field Using Simulated Diffusion on a GPU http://graphics.pixar.com/DepthOfField/paper.pdf Abruf am 2008-07-23 - 48 - 4.3 Ausblick / Tendenzen Neben der Erläuterung bestehender Techniken wurden in den Kapiteln zuvor neue Lösungsansätze geliefert, die sich mit dem aktuellen Stand der Technik realisieren lassen. Im folgenden Kapitel werden Technologien betrachtet, die bei einer bestimmten, prognostizierbaren technischen Entwicklung entstehen können, da sie bereits in laufenden Projekten erprobt werden. In zukünftigen Rechnern werden immer mehr Prozessoren verwendet. Während sich über viele Jahre nur ein Prozessor im Rechner befand, der immer schneller wurde, sind heute MultiProzessor-Systeme Standard. Die Miniaturisierung von Prozessoren wird auch stetig weiterentwickelt. Derzeit passen, durch den 45nm-Fertigungsprozess, mehr Transistoren denn je auf einen Prozessor. Dadurch finden jetzt 410 Millionen Transistoren auf einem Dualcoreund 820 Millionen Transistoren auf einem Quadcore-Prozessor Platz.“1 Aber nicht nur der CPU wird schneller, sondern auch die Grafikkarten werden immer leistungsstärker. Das Technik-Portal Toms Hardware berichtet: „Die Kluft zwischen Intel und Nvidia wächst: In einer E-Mail an seine Mitarbeiter erklärt ein hochrangiger Nvidia-Vize die CPU für »tot«.“2 Erst kürzlich wurde die erste 2-Gigabyte Grafikkarte mit ATI Chipsatz veröffentlicht.3 Spiele wie Crysis, die extreme Anforderungen an die Hardware und besonders an die Grafikkarte stellen, laufen in Echtzeit ab. Das nächste Spiel, Far Cry 2, von der Firma Crytek entwickelt, wird indirekte Beleuchtung in Echtzeit ermöglichen. Dies ist ein sehr rechenaufwendiger Effekt. Intel unternimmt derweil große Bemühungen, Ray Tracing in Echtzeit zu verwirklichen. Die 1 Umweltfreundliche Fertigung und höchste Leistung Intel mit 16 neuen Prozessoren im 45nm-Fertigungsprozess http://www.intel.com/cd/corporate/pressroom/emea/deu/archive/2007/376505.htm 2007-11-12, Abruf am 2008-08-02 2 Tom's Hardware: Nvidia: »Die CPU ist tot« http://www.tomshardware.com/de/Intel-GPU-E-Mail,news-240904.html 2008-04-28, Abruf am 2008-08-24 3 Power Color: Enjoy the 2GB memory and up to 10°C Lower Temperatures. http://www.tul.com.tw/powercolor/news_files/HD4850_2GB_20080714.pdf 2007-07-14, Abruf am 2008-08-24 - 49 - zwei Modelle, die bis dato bei der Bildberechnung verwendet werden, sind Rasterization und Ray Tracing. Beim ersten werden die 3D-Objekte in Dreiecke unterteilt und an die Grafikkarte geschickt, die diese analysiert, zeichnet, koloriert, texturiert, beleuchtet und auf dem Bildschirm darstellt. Effekte wie Reflektionen, Refraktionen oder globale Beleuchtung sind kompliziert zu programmieren und berechnen. Das Modell Ray Tracing hingegen kann diese Effekte wesentlich einfacher berechnen. Die Rechenzeit verhält sich proportional zur Anzahl der Pixel. Zudem lässt sich die Leistung durch zusätzliche Prozessoren im Rechner einfach skalieren.1 Abb. 27: Quake 4 mit Ray Tracing dargestellt In ca. zwei bis drei Jahren, schätzt Dr. Michael Vollmer von Intel, wird die Entwicklung der notwendigen Algorithmen und Rechenleistung vorhanden sein, so dass die ersten Spiele auf dem Markt erscheinen werden, die komplett durch Ray Tracing berechneten wurden.2 Mit diesem Schritt ist es nicht mehr weit zur Echtzeit-Vorschau in 3D-Applikationen, bei der Effekte wie Tiefenschärfe sofort angezeigt werden können. 1 Vgl. Howard, Jeffrey: Real Time Ray-Tracing: The End of Rasterization? http://blogs.intel.com/research/2007/10/real_time_raytracing_the_end_o.php 2007-10-10, Abruf am 2008-07-24 2 Vgl. Dr. Vollmer, Michael: Raytraced games in 2 to 3 years, says Intel http://www.pcgameshardware.com/aid,654068/News/Raytraced_games_in_2_to_3_years_says_Intel/ 2008-07-31, Abruf am 2008-08-01 - 50 - Das erfordert allerdings auch ein Umdenken der Entwicklungsfirmen von 3D-Programmen, die ihre oftmals überalterten Programmkerne „aufbohren“ bzw. komplett neu programmieren müssen, um fundamentale Neuerungen zu ermöglichen. - 51 - 5. Fazit / Zusammenfassung Zum Schluss folgt eine Zusammenfassung und Bewertung der Ergebnisse dieser Diplomarbeit. Es wurden die drei gebräuchlichsten Techniken zur Berechnung von Tiefenschärfe erläutert und ihr Einsatz in 3D- und Compositing-Programmen miteinander verglichen - mit dem Ergebnis, dass keines der Verfahren eine umfassende Lösung für die Kriterien Qualität und Geschwindigkeit darstellt. Beim aktuellen Stand der Technik ist die Berechnung von Tiefenschärfe mit Ray Traycing das einzige physikalisch akkurate Verfahren und somit den 3D-Anwendungen vorbehalten. Es sind allerdings hohe Rechenzeiten notwendig, um Artefakte und Bildrauschen in Animationen zu unterdrücken. Sobald Geschwindigkeit das wichtigste Kriterium ist, sind Post-Effekte im Compositing eine bessere Wahl, die dem Anwendergleichzeitig auch mehr Flexibilität bieten. In diesem Rahmen wurden die am häufigsten verwendeten 3D-Anwendungen auf ihre Benutzerfreundlichkeit und ihren Funktionsumfang mit Tiefenschärfe untersucht und ausgewertet. Das beste Ergebnis erzielte hierbei Lightwave, das mit seiner Echtzeitvorschau das komfortabelste Konfigurieren der Tiefenschärfe ermöglicht und dem Anwender eine große Anzahl von Einstellungsmöglichkeiten bereitstellt. Die kostspieligeren Anwendungen enttäuschten hier, mit Ausnahme von Houdini. Oft sind die Nutzer darauf angewiesen, langwierige Render-Vorschauen abzuwarten und können ohne Kamerawissen die Tiefenschärfe nicht intuitiv kontrollieren. Besonders Maya besitzt wenig Benutzerfreundlichkeit und kostet dabei am meisten. Drei deutsche Firmen wurden zu ihrer Arbeitsweise mit Tiefenschärfe interviewt und ihre Antworten ausgewertet. Die Firmen bestätigen die mangelnde Benutzerfreundlichkeit. Wegen der hohen Flexibilität setzen die meisten Unternehmen auf die Erzeugung der Tiefenschärfe im Compositing, da die Kontrolle über das Aussehen der Tiefenschärfe Vorrang vor der physikalischen Korrektheit hat. Im Rahmen dieser Ergebnisse wurde eine eigene - 52 - Benutzeroberfläche entwickelt, um das Konfigurieren eines Graustufenbildes mit Fokusinformationen intuitiver und schneller zu ermöglichen. Hierbei wurde eine aus drei NURBS-Flächen bestehende Benutzeroberfläche mittels sphärischer Trigonometrie entworfen, mit deren Hilfe sich die Position der Fokusebene, die Größe des Schärfeverlaufs und der Punkt der kompletten Unschärfe schnell definieren lassen. Unter der Verwendung eines Shaders werden die Entfernungen der Flächen zur Kamera in ein Graustufenbild umgesetzt, das im Compositing weiterverwendet werden kann, um Tiefenschärfe zu erzeugen. Dieses Werkzeug ist auf der Webseite www.pixelbaker.com des Autors veröffentlicht. Im Rahmen dieser Arbeit wurden bezogen auf den aktuellen Stand der Technik Lösungsansätze geliefert, wie Kosten und Zeit bei der Verwendung von Tiefenschärfe in der Zukunft reduziert werden könnten – z.B. durch die Entwicklung neuer Werkzeuge sowie die bessere Integration von anderen, bereits vorhandenen Werkzeugen. Zu Letzteren gehört auch ein neuer Algorithmus von Pixar, der eine Echtzeitvorschau von Tiefenschärfe in Kinoauflösung ermöglicht. Große Unternehmen besitzen die entsprechenden Ressourcen, um derartige Lösungen zu entwickeln, während kleinere Unternehmen die herkömmlichen Techniken verwenden müssen. Es wurde weiterhin untersucht, wie Tiefenschärfe in Echtzeitanwendungen eingesetzt wird. Für Echtzeitanwendungen ist der Einsatz von physikalisch korrekter Tiefenschärfe mit BokehEffekt vorerst nicht absehbar, da der Rechenaufwand zu hoch ist, um die notwendige Anzahl von Bildern pro Sekunde zu erzeugen. Deswegen wird Tiefenschärfe bei solchen Anwendungen durch Post-Effekte, Multi-Pass-Techniken und MIP-Mappings simuliert. Des Weiteren wurde auf die Entwicklungen von Intel im Bereich Ray Traycing eingegangen. Dieses Verfahren scheint auf lange Sicht die einzige Möglichkeit zu sein, um zukünftig in allen 3D- Programmen komfortabler mit Tiefenschärfe arbeiten zu können. Mit steigender Prozessorzahl der Rechner und unter Verwendung eines progressiven Renderers wie FPrime, der das Bild mehrmals berechnet und dabei die Qualität ständig verbessert, werden zukünftige 3D-Anwendungen dem Anwender wahrscheinlich ein Echtzeitdarstellungsfenster zur Verfügung stellen können. Nur so kann die Kontrolle des Nutzers über die Tiefenschärfe - 53 - optimiert werden und eine schnelle Konfiguration und Beurteilung bzgl. der Größe der Tiefenschärfe sowie der Form des Bokeh-Effekts ermöglicht werden. Die Tiefenschärfe ist und bleibt vorerst ein zeitaufwändiger und kostspieliger Effekt, ähnlich wie Occlusion und indirekte und globale Beleuchtung. Ohne eine effektive und schnelle Vorschau sind nicht nur die Berechnung, sondern auch die Konfiguration zeitaufwendig und beeinträchtigen die kreativen Möglichkeiten. - 54 - Literaturverzeichnis ABLAN, Daniel M.: Inside Lightwave 8, 2004 ADAMS, Mark; Miller, Erick und Sims, Max: Inside Maya 5, 2003 BABB, Paul u.a.: Maxon Dokumentation, 2007 BERTRAM, Hal: RenderMan For Everyone – Course 25, SIGGRAPH2006 CANT, Richard; CHIA, Nathan; AL-DABASS, Daid: New anti-aliasing and depth of field techniques for games http://ducati.doc.ntu.ac.uk/uksim/dad/webpagepapers/Game-18.pdf (Abruf am 2008-07-23) COOK, Robert L.: Stochastic Sampling in Computer Graphics, 1986 http://graphics.pixar.com/StochasticSampling/paper.pdf (Abruf am 2008-07-27) COOK, Robert L. u.a.: Distributed Ray Tracing, 1984 http://graphics.pixar.com/DistributedRayTracing/paper.pdf (Abruf am 2008-07-27) ESQUIVE, Felipe: fastDOF 1.0, 2005 http://highend3d.com/renderman/downloads/shaders/fastDOF-3526.html (Abruf am 2008-07-19) GOULEKAS, Karen E.: Visual Effects in a Digital World, 2001 GRITZ, Larry und KAUFMANN, Morgan: Advanced RenderMan: Creating CGI for Motion Pictures, 2000 HACHISUKA, Toshiya: GPU Gems 2, 2005 HECHT, Eugene: Optik, 2002 HILLAIRE, Sébastien; Lécuyer, Anatole; Cozot, Rémi; Casiez, Géry: Depth-of-Field Blur Effects for First-Person Navigation in Virtual Environments, 2007 http://www.irisa.fr/bunraku/GENS/alecuyer/hillaire_vrst_07_short.pdf (Abruf am 2008-07-23) HOWARD, Jeffrey: Real Time Ray-Tracing: The End of Rasterization?, 2007 http://blogs.intel.com/research/2007/10/real_time_raytracing_the_end_o.php (Abruf am 2008-07-24) INVERSIN, Aruna: the digitalgypsy VFX Blog, 2006 http://www.digitalgypsy.com/vfxlog/archives/2006/12/ (Abruf am 2008-07-23) K.A.: Umweltfreundliche Fertigung und höchste Leistung – Intel mit 16 neuen Prozessoren im 45nm-Fertigungsprozess, 2007 http://www.intel.com/cd/corporate/pressroom/emea/deu/archive/2007/376505.htm (Abruf am 2008-08-02) KASS, Michael; Lefohn, Aaron, u.a.: Interactive Depth of Field Using Simulated Diffusion on a GPU http://graphics.pixar.com/DepthOfField/paper.pdf (Abruf am 2008-07-22) KATZ, Louis: Visual Effects Blog, 2007 http://katzfx.blogspot.com/2007_06_01_archive.html (Abruf am 2008-07-23) KERLOW, Isaac V.: The Art of 3D Computer Animation and Effects, 2004 LEBKE, David u.a.: Level of Detail for 3D Graphics, 2003 MARTIN, Sven (Pixomondo): E-Mail Betreff: Diplom Tiefenschärfe / Fragebogen (Abruf am 2008-07-23) MAY, James: Depth of Field and Reflections http://www.altyna.com/lw/DOFreflections.htm (Abruf am 2008-08-01) - 55 - MERKLINGER, Harold M.: A Technical View of Bokeh. In: Photo Techniques, Band 18, Nr. 3, 1997 MITTELHOCKAMP, Bernd (4k-Animation): E-Mail Betreff: Diplom Tiefenschärfe / Fragebogen (Abruf am 2008-07-23) MÖLLER, Thomas und Haines, Eric: Real-Time Renderin, 1999 MURRAY, Hugh: Cinefex weekly, 2004 http://www.cinefex.com/weeklyupdate/mailings/45_11232004/web.html (Abruf am 2008-07-23) POWER COLOR: Enjoy the 2GB memory and up to 10°C Lower Temperatures, 2007 http://www.tul.com.tw/powercolor/news_files/HD4850_2GB_20080714.pdf (Abruf am 2008-08-24) SHIRLEY, Peter: Ray Tracing, 2000 Tom's Hardware: Nvidia: »Die CPU ist tot«, 2008 http://www.tomshardware.com/de/Intel-GPU-E-Mail,news-240904.html (Abruf am 2008-08-24) VOLLMER, Michael Dr.: Raytraced games in 2 to 3 years, says Intel, 2008 http://www.pcgameshardware.com/aid,654068/News/Raytraced_games_in_2_to_3_years_says_Intel/ (Abruf am 2008-08-01) WRIGHT, Steve: Digital Compositing for Film and Video, 2002 - 56 - Bildquellen Abb. 1: Cinnamon, Cindy: A cup of bokeh, Flickr http://flickr.com/photos/cloughridge/2091504758/ 2007-12-06, Abruf am 2008-08-03 Abb. 2: Bereich der Tiefenschärfe visualisiert André Schaarschmidt, 2008-08-03 Abb. 3: Zerstreuungskreis visualisiert André Schaarschmidt, 2008-08-03 Abb. 4: Photo Aficionado: Situation Room: Aperture and Depth of Field http://www.photoaficionado.com/situationroom/aperture.html Abruf am 2008-08-02 Abb. 5: Merklinger, Harold M.: A Technical View of Bokeh. In: Photo Techniques, Band 18, Nr. 3, 1997, S. 37 Abb. 6: The Official Guide to Learning OpenGL, Release 1, 1994, Kapitel 10 http://fly.cc.fer.hr/~unreal/theredbook/chapter10.html Abruf am 2008-08-02 Abb. 7: Bauer, Andreas C. http://homepage.mac.com/bauer/portfolio_shaders/ zDepthDOF/zDepthDOF.html Abruf am 2008-08-03 Abb. 8: Dell 2005fpw Monitor Testbild http://home.comcast.net/~rrighetti/CheckeMON.jpg Abruf am 2008-08-03 Abb. 9: Rosenman, Richard http://www.dofpro.com/cgigallery.htm Abruf am 2008-08-03 Abb. 10: Leader, Richard http://www.richleader.com/bargainbinreview_FSAA.htm Abruf am 2008-08-03 Abb. 11: Simpson, Marc http://www.frischluft.com/lenscare/quality_comparison.html Abruf am 2008-08-03 Abb. 12: Bauer, Andreas C.: zDepthDOF Documentation http://homepage.mac.com/bauer/portfolio_shaders/ zDepthDOF/zDepthDOF.html Abruf am 2008-08-03 Abb. 13: Maya 2008 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 14: 3Ds Max 2008 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 15: Houdini 9.5.170 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 - 57 - Abb. 16: Lightwave 9.3.1 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 17: Cinema 4D R10.5 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 18: Blender 2.4.6 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 19: XSI 6.5 Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 20: Skript Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 21: Attribute Benutzeroberfläche Schaarschmidt, André, 2008-08-03 Abb. 22: Sweep-Attribut Schaarschmidt, André, 2008-08-03 Abb. 23: Kurven Darstellung Schaarschmidt, André, 2008-08-03 Abb. 24: Worley Laboratories vom „Interactive“-Video http://www.worley.com/Media/animations/fprime/FP3_SpeedTracer.mov Abruf am 2008-08-03 Abb. 25: Evanson, Nick von You Gamers http://www.yougamers.com/reviews/13519_the_witcher/ images/thewitcher_depthoffield/ Abruf am 2008-08-03 Abb. 26: Sébastien Hillaire, Anatole Lécuyer, Rémi Cozot, Géry Casiez: Depth-of-Field Blur Effects for First-Person Navigation in Virtual Environments, http://www.irisa.fr/bunraku/GENS/alecuyer/hillaire_vrst_07_short.pdf 2007; Abruf am 2008-07-23 Abb. 27: Pohl, Daniel: Intel Quake 4 Ray Tracing http://www.pcper.com/images/reviews/506/ q3rt_Demo_poster_0003_resize.jpg Abruf am 2008-08-03 - 58 - Eidesstattliche Erklärung Ich erkläre an Eides statt, dass ich die vorliegende Diplomarbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen nicht benutzt und die den benutzten Quellen wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe. Berlin, den 17.07.08 André Schaarschmidt - 59 -