multipass rendering mit maya und mental ray - Manuel Macha

manuelmacha.de

multipass rendering mit maya und mental ray - Manuel Macha

WORKSHOP

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

DIGITAL PRODUCTION : 02 : 04 : 138

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-


DAS ERGEBNIS DIESES WORKSHOPS – 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.

MAYA: RENDER PASSES

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

[01] RENDERING IN EINEM

PASS MIT MENTAL RAY

[02] DER CHARACTER „BENDER“,

GERENDERT MIT BEAUTY PASS

DIGITAL PRODUCTION : 02 : 04 : 139

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

[03] „LIGHTGIRL“ IST EIN HILFREICHES TOOL ZUM EDITIE-

REN ALLER LICHTER INNERHALB EINER SZENE


[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

WORKSHOP

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

DIGITAL PRODUCTION : 02 : 04 : 140

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


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

MAYA: RENDER PASSES

[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

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

LINKS ZUM WORKSHOP

DIGITAL PRODUCTION : 02 : 04 : 141

[08] DER ERMITTELTE WERT

MUSS UNTER DEN „EXTRA

ATTRIBUTES“ EINGETRAGEN

WERDEN

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

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).


WORKSHOP

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

[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

DIGITAL PRODUCTION : 02 : 04 : 142

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

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).

Ähnliche Magazine