DIGITAL PRODUCTION : 02 : 04 : 138 MULTIPASS RENDERING MIT MAYA UND MENTAL RAY Um die größtmögliche Kontrolle über den finalen Look seiner Bilder zu erhalten, kommt man um das Rendering in Passes nicht herum. Doch vor allem Einsteiger scheuen sich oftmals davor, diese Methode einzusetzen. Unser Workshop gibt Aufschluss über die unterschiedlichen Arten und Einsatzmöglichkeiten von Render Passes und ihre Integration in Maya. Unter dem Begriff Multipass Rendering versteht man das Aufteilen einer Szene in verschiedene Ebenen (Passes), um diese anschließend getrennt voneinander zu berechnen. Erst mithilfe eines Compositing-Programms werden die so entstandenen Bildsequenzen zu einem finalen Shot montiert. Obwohl sich dieser Vorgang zunächst nach Mehrarbeit anhört, ist genau das Gegenteil der Fall: die Zeit zum Aufsetzen der unterschiedlichen Render Passes spart man an anderer Stelle locker wieder ein. So werden die Mühen durch teilweise erheblich kürzere Renderzeiten, größere Flexibilität bei der Bildkomposition und schnellere Korrekturen einzelner Elemente belohnt. Schließlich hat es keinen Sinn, eine komplette Szene nur aufgrund einer winzigen Änderung erneut zu rendern. Unter bestimmten Umständen lassen sich Korrekturen sogar gleich mit ein paar Mausklicks im Compositing durchführen. Beispiele hierfür wären die gezielte Farbkorrektur für ein einzelnes Objekt oder die nachträgliche Justierung der Schattenintensität. Am deutlichsten werden die Vorteile bei der Integration von CG-Footage in Realaufnahmen. Da hier maximaler Realismus gefordert wird, ist es für das Compositing wichtig, Kontrolle über jedes einzelne Bildelement zu haben. Durch das Aufsplitten der Szene lassen sich Schatten, Reflexionen, Farbsättigung und andere Parameter der CG-Elemente getrennt manipulieren und auf diese Weise nahtlos in die reale Szene integrieren. Bei besonders komplexen Szenen mit hoher Polygonanzahl und großen Texturen kann der Renderer bisweilen schlappmachen. Durch die Aufteilung des Shots in Vorder-
DIGITAL PRODUCTION : 02 : 04 : 139 MAYA: RENDER PASSES DAS ERGEBNIS DIESES S DER EINSATZ VON RENDER PASSES ERMÖGLICHTE EINEN KREATIVEN FREIRAUM BEI DER BILDGESTALTUNG, Mittel- und Hintergrund-Passes sowie separates Rendering dieser Elemente lässt sich der Speicherverbrauch soweit reduzieren, dass die Szene trotzdem gerendert wird. Falls die Kamera sich innerhalb einer Szene nicht bewegt und der Hintergrund auch nicht animiert ist, hat es Sinn, diesen nur einmal zu rendern und im Compositing als Still-Image zu benutzen. Dadurch lässt sich wiederum Renderzeit sparen. DIE VERSCHIEDENEN RENDER PASSES IN DER PRAXIS Im Folgenden werden die gebräuchlichsten Typen von Render Passes anhand einer Beispielszene erläutert. Abonnenten finden das komplette Projekt auf der Heft-DVD, es lässt sich außerdem unter der Adresse www.manuelmacha.de/ renderpasses.zip downloaden. Sie können optional auch noch das MEL-Script LightGirl installieren, durch das sich der Workflow beim Einrichten der Passes erheblich verbessern lässt. Eine Liste der hier benutzten Scripts und Plug-Ins nebst Download-Möglichkeiten findet sich im Kasten Links zum Workshop. Lassen Sie sich im Viewport die Camera1 im Shaded-Mode anzeigen. Wir erstellen nun ein einfaches Test-Rendering mit Mental Ray [Bild 01], um später eine Vergleichsmöglichkeit mit dem aus mehreren Passes kombinierten Bild zu erhalten. Im Anschluss wird nun die Szene in die verschiedenen Passes aufgeteilt, wobei wir mit dem Beauty Pass beginnen wollen [Bild 02]. Dieser ist auch unter den Bezeichnungen Diffuse- oder Color-Pass bekannt und speichert die Farbinformation eines Bildes. Highlights, Reflexionen und Schatten werden unter normalen Umständen nicht mit gerendert, weil dafür jeweils eigene Passes eingerichtet werden. Um maximale Kontrolle zu erhalten, werden wir in unserer Beispielszene den Hintergrund getrennt vom Character Bender aus der Serie Futurama berechnen. Blenden Sie hierfür zunächst das Hintergrund-Layer aus. Selektieren Sie alle Objekte im Set bender1 und lassen Sie sich im Hypershade über den Befehl Graph Graph Materials on selected Objects alle dem Character zugewiesenen Shader anzeigen. Über den Attribute Editor sollte zunächst in allen vier Shadern der Input für die Reflexionen getrennt werden, damit diese nicht innerhalb des Beauty Passes sichtbar sind. Klicken Sie hierfür mit der rechten Maustaste auf das Attribut Reflectivity und wählen Sie die Option Break Connection. Setzen Sie anschließend den Wert auf 0. Sie können alternativ auch in den Mental Ray Globals den Wert für Max. Reflection Rays auf 0 setzen. In den Lichtquellen müssen die Optionen Emit Specular und der Schattenwurf deaktiviert werden. Komfortabel lässt sich dies über das Script LightGirl erledigen [Bild 03]. Zu diesem Zweck laden wir zunächst über den Befehl Load All Lights alle Lichter in LightGirl. Unter dem Menüpunkt Global lassen sich nun über die Befehlskette Attribute Kontrol Emit Specular Off bei allen Lichtern auf einmal die Schatten und Specular-Einstellungen deaktivieren. Zuletzt blenden wir noch das Licht namens backlight aus, da wir dieses in einem getrennten Pass rendern werden. Die gerenderte Szene speichern Sie inklusive Alpha-Kanal und benennen sie eindeutig. Führen Sie danach die oben erwähnten Schritte ebenfalls für alle Objekte des Hintergrunds aus. Legt man nun die beiden Layer übereinander, sieht man sofort, dass unser Character keine Verbindung mit dem Hintergrund hat. Darüber hinaus wirkt alles noch sehr flach, da jegliche Art von Schatten fehlt. Um die beiden Ebenen glaubhaft miteinander zu kombinieren, brauchen wir aus diesem Grund einen Shadow Pass. SHADOW, SPECULAR UND REFLECTION PASS Um den Shadow Pass einzurichten, laden wir zunächst die Ursprungsszene. Da der Hintergrund in diesem Fall keinen Schatten auf Bender wirft, kann [01] RENDERING IN EINEM PASS MIT MENTAL RAY [02] DER CHARACTER BENDER, GERENDERT MIT BEAUTY PASS [03] LIGHTGIRL IST EIN HILFREICHES TOOL ZUM EDITIE- REN ALLER LICHTER INNERHALB EINER SZENE
DIGITAL PRODUCTION : 02 : 04 : 140 [04] IM ATTRIBUTE SPREAD SHEET GEBEN SIE FÜR BENDERS GEOMETRIE UNTER DEM REITER RENDER DIE IM SCREENSHOT MARKIERTEN WERTE EIN [05] DIE REFLEXION DER KUGEL AUF DER FLÄ- CHE WIRD MIT DER ENTFERNUNG UNSCHÄRFER [06] BENDERS REFLECTION PASS: DIE ZEIT- SCHRIFT WURDE NICHT MITGERENDERT der Character ebenso wie alle Lichtquellen außer dem Hauptlicht key_s ausgeblendet werden. Der Geometrie wird nun ein Use Background -Shader zugewiesen. Im Rendering verbirgt sich die Schatteninformation im Alpha-Kanal, welcher sich im Compositing als Maske benutzen lässt, um die Schattenregionen abzudunkeln. Wiederholen Sie den Schritt für die Hintergrundobjekte, blenden Sie in diesem Fall jedoch Benders Geometrie nicht aus, sondern setzen im Attribute Spread Sheet die Werte für Receive Shadows und Primary Visibility auf off [Bild 04]. So wird Bender nicht mit gerendert, wirft jedoch Schatten auf seine Umgebung. Im Specular oder Highlight Pass werden nur die Highlights gerendert, die auf den Materialien auftauchen. Deaktivieren Sie hierzu in allen Lichtern der Szene die Option Emit Diffuse. Der Specular Pass wird im Compositing mithilfe des Transfer-Modus Screen über den Beauty Pass gelegt. Auf diese Weise kann auch noch in der Post die Intensität von Highlights gesteuert werden. Zudem lässt sich der Pass auch ein weiteres Mal leicht geblurrt über die Komposition legen: Auf diese Weise erzielt man einen schönen Halo-Effekt um die Highlights herum. Im Reflection Pass werden nur die Reflexionen innerhalb einer Szene gerendert. Falls die Reflektionen nur schemenhaft und geblurrt zu sehen sein sollen, hat man hier zum Beispiel die Möglichkeit, die Anti-Aliasing-Einstellungen herabzusetzen und somit Renderzeit zu sparen. Ein guter Effekt lässt sich auch erzielen, wenn man die Intensität des Blurs der Reflexionen mit zunehmender Entfernung zum Objekt in der Post verstärkt [Bild 05]. Da unser Roboter Bender in der Beispielszene aus Metall besteht, sollte sich seine Umgebung in ihm spiegeln. Zu diesem Zweck erstellen wir einen Phong Shader und weisen ihm über den Hypershade jenen Objekten zu, denen vorher der Shader bender_steel zugeschrieben war. In den Attributeinstellungen muss die Farbe auf schwarz und die Reflectivity auf den Wert 1 gesetzt werden. Für alle anderen Objekte die Zeitschrift ausgenommen deaktivieren wir über das Attribute Spread Sheet die Primary Visibility. Da Bender von der Zeitschrift teilweise verdeckt wird, darf sie im Alpha Kanal nicht mit gerendert werden, um im Reflection Pass nicht aufzutauchen [Bild 06]. Aus diesem Grund wird in dem ihr zugewiesenen Shader die Matte Opacity auf 0 gesetzt. DEPTH, AMBIENT OCCLUSION UND GLOW PASS Tiefenunschärfe trägt viel zur Glaubwürdigkeit und Stimmung eines Bildes bei. In unserem Fall werden wir den Fokuspunkt natürlich auf Bender legen und den Hintergrund blurren. Man kann die Depth of Field zwar sicherlich auch direkt auf das Bild rendern, verliert aber somit Flexibilität. Sinnvoller ist es, einen separaten Depth Pass zu berechnen und die Tiefenunschärfe in der Post mit Hilfe eines Filters umzusetzen [Bild 07]. Beim Depth Channel (oder Z-Kanal) handelt es sich um ein Bild, in dem die Tiefeninformation in Graustufen abgespeichert wird. In diesem Fall werden wir den Z- Kanal mit Hilfe eines speziellen Depth Shaders rendern. Dieser Shader ist wie die meisten anderen in diesem Workshop benutzten Scripts und Shader zum Gratis-Download verfügbar. Allerdings brauchen Sie sich nicht die Mühe zu machen, den Shader herunterzuladen, denn er ist bereits in die Szene integriert. Selektieren Sie via Edit Select All by Type Geometry die komplette Geometrie der Szene und weisen Sie ihr den bereits im Hypershade abgelegten Depth Shader zu. In den Extra Attributes des Shaders legen wir noch manuell die Tiefe der Szene fest [Bild 08]. Diesen Wert finden Sie am einfachsten heraus, indem Sie die entsprechende Kamera auswählen. Mit einem Druck auf die Taste T erscheint der Manipulator, auf den Sie solange klicken, bis er nach links zeigt. Nun können Sie mit der mittleren Maustaste bequem die Clipping Planes der Szenengröße anpassen, so dass sich die Geometrie innerhalb des gerenderten Bereichs befindet. In unserem Fall ist dies im Bereich zwischen 2 und 45 gegeben. Folglich ist im Depth Shader der Wert 45 einzugeben. Für diesen Pass muss der Standard Maya Renderer verwendet werden, da Mental Ray das Shading Network des Depth Shaders nicht richtig interpretieren kann und ein schwarzes Bild rendern würde. Der Ambient Occlusion Pass simuliert prinzipiell eine indirekte Lichverteilung des ambienten Lichts, so dass sich sehr
DIGITAL PRODUCTION : 02 : 04 : 141 MAYA: RENDER PASSES [08] DER ERMITTELTE WERT MUSS UNTER DEN EXTRA ATTRIBUTES EINGETRAGEN WERDEN [07] ÜBER DIE CLIPPING PLANES ERMITTELN SIE DIE FÜR DEN DEPTH SHADER RELEVANTE TIEFE DER SZENE [09] DIE WIRKUNG DES DIRTMAP-SHADERS. LINKES BILD: RAY SPREAD = 88, RECHTS: RAY SPREAD = 44 schöne Schattierungen erzielen lassen. Um den Pass zu berechnen, müssen Sie zunächst das Dirtmap -Plug-In herunterladen und installieren. Fortan finden Sie im Hypershade bei den Mental Ray Nodes unter dem Reiter Miscellaneous den Dirtmap Node. Diesen Node verknüpfen wir mit der Out Color eines Surface Shaders [Bild 09]. Im Attribute Editor geben Sie folgende Werte ein, die sich als praktikable Grundeinstellungen für die Beispielszene erwiesen haben [Bild 10]: Base Color: Weiß, Probe Geom: aktiviert, Ray Spread: 88 (der Wert bestimmt die Ausbreitung des Schattens in den Ecken eines Objekts), Ray Min Count: 32, Ray Max Count: 32, Near Clip Plane: 2, Far Clip Plane: 45. Die Plane-Werte wurden den Kameraeinstellungen beim Einrichten des Depth Pass entnommen und variieren natürlich von Szene zu Szene. Wir kommen nun zum Glow Pass. Da es sich beim Glow-Effekt sowieso um einen Post-Effekt handelt, hat es Sinn, diesen nicht in Maya selbst auf die finalen Bilder zu rendern, sondern dafür auch einen separaten Pass einzurichten. Weisen Sie hierzu allen Objekten außer denen, auf die ein Glow-Effekt angewendet werden soll einen schwarzen Surface Shader zu. In der Beispielszene sind das die drei roten Knöpfe und das Notausgangsschild. Weisen Sie den Shadern der Glow-Objekte ebenfalls Surface Shader zu und geben Sie diesen die gewünschte Farbe des Glows, beziehungsweise verbinden Sie im Falle des Schildes die ursprüngliche Textur mit der Out Color. Der Glow Pass lässt sich im Compositing nach Belieben blurren und mittels des Transfermodus Screen auf das finale Bild rechnen. RIM LIGHT UND WEITERE PASSES Zu guter Letzt werden wir für unseren Character noch ein Rim Light rendern, um ihn besser vom Hintergrund abzusetzen. Verstecken Sie dazu alle Lichter der Szene mit Ausnahme des Backlights. Das Ziel ist, das Licht nun so zu positionieren, dass sich auf unserem Character eine deutliche Lichtkante bildet. Am schnellsten geht dies, indem man im IPR ein Preview rendert und somit anschließend sein Licht so lange verschiebt, bis man mit der Position des Rim Lights zufrieden ist. Das finale Rendering erfolgt natürlich wieder mit Mental Ray. Somit wären alle Passes dieses Workshops eingerichtet und können nun theoretisch composed werden. An dieser Stelle sei noch angemerkt, dass es neben den eben bereits erwähnten Layern noch viele weitere Varianten von Render Passes gibt, die nötig sind, um bestimmte Effekte zu erzielen. Dazu gehören etwa Particle, Lightfog, Paint Effects oder Masken-Passes. SCENE SETUP MIT HILFE DES RENDER PASSES -PLUG-INS Wie man sieht, ist die Einrichtung der einzelnen Passes zwar relativ unkompliziert, dennoch ist es äußerst ärgerlich, wenn man diesen Vorgang mehrfach wiederholen muss. Dies ist beispielsweise dann der Fall, wenn noch Änderungen innerhalb einer Szene vorzunehmen sind, nachdem die Passes bereits eingerichtet wurden. Wer schon einmal mit XSI gearbeitet hat, weiss eventuell die dortige Lösung zum Aufsetzen der Passes zu schätzen. Da der User alle Passes innerhalb einer Szene einrichten kann, ist es problemlos LINKS ZUM T www.3drender.com/light/compositing Homepage von Jeremy Birn, Autor von Digital Lighting und Rendering T www.technolumiere.com Homepage von Andrew Chapman, Autor des Plug-Ins Render Passes T www.3dluvr.com/analogue/mel.htm Homepage von Ben Wronsky, Autor des Scripts LightGirl T http://animus.brinkster.net/ Homepage von Daniel Rind, Autor des Plug-Ins Dirtmap T www.manuelmacha.de/renderpasses.zip Hier lässt sich die im Artikel verwendete Beispielszene downloaden (1,96 MByte großes Zip-File).
DIGITAL PRODUCTION : 02 : 04 : 142 möglich, im Nachhinein noch Korrekturen an der Animation oder Kameraposition vorzunehmen. Mit Hilfe des Render Passes genannten Plug-Ins steht diese Funktionalität in ähnlicher Form nun auch in Maya zur Verfügung. Nach der Installation findet man bei einem Druck auf F5 in der Menüleiste einen neuen Eintrag namens Render Passes, über den sich der Render Pass Editor aufrufen lässt [Bild 11]. Hier lassen sich verschiedene Passes und so genannte Overrides einrichten. Hinter den Overrides verbergen sich MEL- Kommandos, mit denen man die Änderungen definiert, die zur Einrichtung des jeweiligen Pass nötig sind. Einmal eingerichtete Overrides lassen sich mehreren Passes zuweisen [Bild 12]. So [10] DIE PARAMETER FÜR DEN DIRTMAP SHADER ist es zum Beispiel sinnvoll, ein Override zu definieren, mit dem sich global die Schatten ein- und ausschalten lassen. Ein Nachteil des Scripts ist sicherlich, dass auch immer ein MEL Command geschrieben werden muss, um die Änderungen des Overrides rückgängig zu machen. Natürlich steigt auch der Programmieraufwand mit der Anzahl der in einer Szene vorhandenen Objekte und Shader. Man kann dem jedoch entgegenwirken, indem man viele Objekte, die den gleichen Shader zugewiesen haben, zu Sets zusammenfasst und die Änderungen anschließend an diesen vornimmt. Zudem kann man wie in unserer Beispielszene versuchen, die Anzahl der Shader gering zu halten, indem man vermehrt Shading Switches einsetzt. Hat man die Overrides schließlich zugewiesen, lässt sich unter Current Pass bequem zwischen den einzelnen Einstellungen hin- und herschalten. Das Plug-In führt dann zunächst die unter MEL Code to revert Override definierten Kommandos des derzeitigen Passes aus, stellt somit den Ursprungszustand der Szene wieder her und führt anschließend den Override MEL Code des Passes aus, auf den umgeschaltet wird. Somit entfällt fortan das manuelle Aufteilen der Passes in viele separate Dateien, wodurch eventuelle Änderungen eines Shots natürlich sehr viel bequemer durchzuführen sind. Allerdings gilt es abzuwägen, ob sich der Zeitaufwand für die Programmierung der MEL Commands lohnt, denn hier ist sehr viel Sorgfalt gefragt. Insofern rechtfertigt sich der Einsatz des Tools eher für größere Projekte, bei denen viele gleichartige Shots in Passes zu unterteilen sind. DAS COMPOSITING DER UNTERSCHIEDLICHEN LAYER [11] DAS PLUG-IN REN- DER PASSES INTE- GRIERT SICH UNTER DEM PUNKT RENDE- RING IN MAYAS MENÜ- LEISTE [12] IM RENDER PASS EDITOR LASSEN SICH DIE OVERRIDES DEFINIEREN, DIE MAN DEN EINZELNEN PASSES GEZIELT ZUWEISEN KANN Da es sich bei diesem Artikel in erster Linie um einen Maya- Workshop handelt, soll an dieser Stelle nur kurz und bündig auf das Compositing der unterschiedlichen Layer unserer Testszene eingegangen werden. Für jeden, der schon einmal mit einem derartigen Programm gearbeitet hat, sollte es relativ leicht nachzuvollziehen sein, wie die einzelnen Bilder miteinander kombiniert werden müssen. Deshalb hier eine mögliche Vorgehensweise in Kurzform. In diesem Fall wurde das Compositing in Combustion vorgenommen. Es lässt sich selbstverständlich auch jedes andere Programm benutzen, denn das Prinzip ist immer das gleiche. Ordnen Sie die Layer des Characters und des Backgrounds folgendermaßen jeweils zu einer Unterkomposition an: T Glow Pass, Transfermodus: Screen T Reflection Pass, Transfermodus: Screen T Ambient Occlusion Pass, Transfermodus: Multiply T Specular Pass, Transfermodus: Screen T Beauty Pass: Transfermodus: Normal. Der Alpha-Kanal des Shadow Pass wird dazu benutzt, über einen Brightness Operator die Schattenregionen der jeweiligen Unterkomposition abzudunkeln. Die gesamte Komposition erhält mithilfe des Depth Channels Tiefenunschärfe, der Fokuspunkt wurde hierbei natürlich auf Bender gelegt. Über die Intensität der Opacity der einzelnen Layer können Sie nun schließlich die einzelnen Bildelemente sehr gezielt manipulieren. T Manuel Macha Der Autor beschäftigt sich seit 1998 mit 3D-Grafik und ist zur Zeit als Freelancer mit Fokus auf Modeling, Rigging und Animation tätig (www.manuelmacha.de).