Renderzeiten in 3d-Renderings

Viele A:M-Benutzer denken, A:Ms Renderer wäre im Vergleich zu Mental Ray und anderen Renderern sehr langsam. Das entspricht aber einfach nicht den Tatsachen.
In Wirklichkeit sind die Unterschiede maginal. Das was den Unterschied ausmacht sind die Rendereinstellungen.

A:M verwendet von Anfang an relativ komplexe Rendersettings als Presets, wo hingegen z.B. XSI zuerst so gut wie keine rechenintensiven Effekte verwendet und diese nach und nach hinzuschaltet. Im folgenden Artikel findet ihr einige der rechenintensivsten Optionen in A:M und wie man durch gewisse Anpassungen ein sehr ähnliches Ergebnis bei deutlich reduzierter Renderzeit erzeugen kann.

Schatten und Schattentypen

XSI verwendet zu Beginn überhaupt keine Schatten. Erstellt man dort ein Licht, so kommt dieses zu Beginn ohne Schatten daher.

Erstellt man in A:M hingegen ein Licht, ist dieses von beginn an auf Raytraced Shadows eingstellt. Diese Art Schatten zu berechnen ist an sich ebenfalls schon sehr rechenintensiv besonders, wenn es weiche Schatten sein sollen.

Mein Tipp: Verwendet möglichst wenig Lichter, die Schatten werfen. In vielen Szenen benötigt ihr nur ein Licht, das Schatten wirft und dieses benötigt auch keinen Raytracing-Shadow.

Verwendet am Besten einen Z-Buffer-Schatten. Diese Schattenart ist in A:M nur für Spot-/Klieg-Lichter verfügbar. Also verwendet für einen Schattenwurf einfach so ein Licht. Es kann auch weiche Schatten erzeugen ohne die Renderzeiten merklich in die Höhe zu treiben.

Aufhellung nur durch Lichter

In einigen Büchern zum Thema Lichtsetzung findet ihr den Hinweis: Verwendet lieber viele Spot-Lichter mit einem großen Fall Off-Wert als die Szene über den Ambiance-Wert aufzuhellen.

Das sieht in der Tat ein wenig besser aus (oft fällt es aber gar nicht auf), erhöht die Renderzeiten aber auch.
Ich empfehle: Verwendet lieber die Gloabl Ambiance-Funktion, die man bei jeder Chor findet, einen Spot mit Z-Buffer und ein paar Specular-Lichter, bei denen nur der Specular-Einfluss aktiv ist. AO könnt ihr dann vollständig deaktivieren.

XSI hat einen Ambiance Default-Wert.

Spiegelungen

Einer der schlimmsten Renderzeit-Killer sind echte Raytrace-Spiegelungen in Verbindung mit Transparenz. Ich empfehle: Geht sehr behutsam mit dem Reflectivity-Wert um, solltet Ihr Transparenzen in eurer Szene haben und lasst Ihn wo immer möglich auf 0. Spiegelungen in Spiegelungen in Objekten die transparent sind und sich selbst ebenfalls wiederspiegeln? Tötlich.

Ich empfehle: Verwendet entweder eine Environment-Map oder den Environment-Shader mit einem Bild mit z.B. einfach einem hellen Streifen. Ihr werdet es nicht bereuhen und eine solche Lösung sieht häufig sogar besser aus als einfach nur eine Spiegelung.

Solltet ihr doch echte Raytracing-Spiegelungen verwenden müssen, setzt den Reflection-Wert in den Rendersettings auf maximal 1 bis 2 und verwendet einen Fall-off für die Spiegelungen. So spart man sich auch hier viel Zeit. Ihr benötigt nur dann höhere Werte, wenn ein Spiegel sich zB in einem anderen spiegeln soll.

Solltet ihr aber nicht ohne Reflektionen auskommen, solltet ihr einen Blick auf den fall-off Wert werfen. Er sagt A:M, wie weit ein Objekt entfernt sein darf, um noch in die Berechnung einzufließen. Ziemlich hilfreich.

XSI deaktiviert dies zu Beginn vollständig.

Transparenz, Density und Transluzenz

Transparenzen sind an und für sich gar keine große Sache was Renderzeiten angeht. Erst mit dem Einsatz von Index of Refraction != 1 oder in Kombination mit Spiegelungen wird es renderintensiv.

Viele meinen, man könnte Glas gar nicht ohne einen Index of Refraction und Reflections erstellen. Das halte ich für unwahr.
Schaut euch einfach mal den Transulenz-Wert an. Transulenz sagt aus, wieviel der eigentlichen Farbe des Objekts dort auftaucht, wo ein Objekt transparent ist und der Density-Wert sagt aus wieviele Schichten eines Objekts durchscheinden sind und wann ein Objekt nicht mehr durchsichtig ist.

Spielt einfach ein wenig damit, und ihr könnt euch den Index of Refraction häufig sparen und damit Renderzeit rausschlagen.

Dies ist ebenfalls in XSI vorerst deaktiviert.

 
Glas-Shader

Eines ist mit Reflektionen und Brechungsindex gerendert, das andere ohne. Aber welches ist welches?

Welches ist welches?

Wie man hier sieht, können beide Glas-Materialien ziemlich gut aussehen. Eines ist mit Index of Refraction und Reflections gerendert, eines ohne. Beide verwenden eine Environment-Map.

Der Renderunterschied ist enorm. Bei 720p-Auflösung und 3 Passes auf meine PC:
- mit den Verfahren: ca. 1,5 Minuten
- ohne diese Verfahren: ca. 30 Sekunden

Welches ist das mit und welches das ohne?
Links seht ihr das Bild mit, rechts das ohne diese Verfahren.

Und bedenkt: Für ein Bild, verwendet A:M nur eine Core!

Ambient Occlusion

Um es sich leicht zu machen, verwenden viele Ambient Occlusion. Das sieht wunderbar aus, erhöht aber auch die Renderzeiten.

Mein Tipp: Verwendet entweder das in den aktuellen Versionen vorhandene Screenspace Ambient Occlusion (SSAO), dass mittlerweile sogar per GPU gerechnet werden kann (wenn die Grafikkarte mitspielt) oder setzt einfach nur Global Ambiance und ein Spot-Light mit Z-Buffer-Schatten ein. Das sieht auch gut aus und rechnet nur einen Bruchteil der Zeit.

Z-Buffer Schattenauflösung

Ein Z-Buffer-Schatten verwendet immer eine Map. Viele denken jetzt: Wie, 512 x 512? Das stell ich doch gleich mal auf 2048 x 2048.

GANZ großer Fehler. Das ist keine Pixelauflösung in dem Sinne. Sie zeigt nur an, wieviele Unterteilungen für einen Schatten Flächenmäßig es geben kann.

Habt ihr also einen Schatten, der kaum in die Tiefe geht, weil das Objekt z.B. klein ist oder von oben beleuchtet wird: Finger weg von der Map-Auflösung. Das bringt überhaupt keinen Vorteil.

In den meisten Situationen reicht eine 512 x 512 Auflösung vollkommen aus. Erst wenn ihr wirklich eine Art Pixelbildung im Schatten bemerkt müsst ihr auch eine Map-Auflösungserhöhung in Betracht ziehen.

Manchmal reicht es aber auch, an den anderen Einstellung von Z-Buffer-Shadows zu spielen. Spielt ein wenig mit den Einstellungen. Es kann euch Minuten und Stunden Renderzeit sparen.

Sehr große Patches

Das Gute an einem Patch ist, dass er Auflösungsunabhängig ist. Aber das heisst nicht, dass man die Patches zu groß machen sollte oder zu nah mit der Kamera an sie heran zoomen sollte.

Ihr benötigt eine extreme Nahaufnahme? Verwendet lieber ein paar mehr Patches (übertreiben schadet aber auch irgendwann).

Das kann in gewissen Situationen sehr positiv für die Renderzeiten ausfallen.

Es ist ziemlich leicht zu verstehen: Um so größer der Patch ist, desto genauer muss gerechnet werden um die Oberfläche zu erzeugen. Und um so mehr Stellen es hinter dem Komma sein müssen, um so länger braucht A:M.