Funktion verfügbar in CINEMA 4D Visualize, Broadcast, Studio
ProRender
Allgemeines
Hinweis:
Beim erstmaligen Verwenden von ProRender erfolgt eine Abfrage, ob
Shader kompiliert werden sollen. Das empfiehlt sich immer und Sie sollten hier mit
Ja antworten. Cinema 4D kompiliert die Shader dann im Hintergrund, während Sie weiter arbeiten können. Nach einigen Minuten wird Cinema 4D Vollzug vermelden und Sie können rendern. Antworten Sie hier mit
Nein erfolgen notwendige Kompilierungen erst bei Renderbeginn.
Der ProRender ist ein spezieller, physikalisch korrekt rechnender Renderer, der auf Grafikkarten (auch mehrere in einem Rechner verbaute können gleichzeitig genutzt werden) läuft. Dadurch, dass Grafikkarten auf Renderaufgaben spezialisiert sind, rechnen diese meist um ein vielfaches schneller als handelsübliche CPUs. Sollte Ihre Grafikkarte nicht kompatibel sein, kann der ProRender auch – langsamer – auf der CPU laufen (in einem allerdings experimentellen Modus).
Der ProRender kann in den Rendervoreinstellungen ausgewählt werden. Ist das geschehen, kann er wie gewohnt im Bild-Manager, einer Ansicht oder mittels des Interaktiven Renderbereichs rendern.
Darüber hinaus kann er jetzt als interaktiver Vorschaurenderer (aktivierbar im Menü "ProRender" in der Ansicht) funktionieren.
Hier in Kürze die Vor- und Nachteile eines GPU-Renderers.
Vorteile
- Im Vergleich mit der CPU schnelles Rendern (bei den meisten, eher komplexeren Szenen) mit "eingebauter" Global Illumination. Das ganze geschieht physikalisch korrekt, was einfacher zu erreichenden Fotorealismus ermöglicht.
- Ein Rendering kann aufgrund der kompletten Sichtbarkeit schon bei Renderstart früh im Renderprozess (s. Abbildung unten) beurteilt werden.
- Rechnet die Grafikkarte, kann sich die CPU anderen Aufgaben widmen.
- Die Zunahme der Rechengeschwindigkeit von einer Grafikkartengeneration zur nächsten ist momentan im Vergleich zu der von CPU-Generationen wesentlich größer, was für die Zukunft noch wesentlich schnellere Rendergeschwindigkeiten verspricht.
Nachteile
- Derzeit noch nicht mit allen möglichen Features ausgestattet (ProRender wird jedoch laufend weiter entwickelt).
- Aktuelle Grafikkarten hinken bzgl. ihrer Arbeitsspeichergrößen hinter CPUs her. So können entsprechende Szenen, die problemlos per CPU mit z.B. 32 GB Hauptspeicher gerendert werden können, auf der Grafikkarte mit z.B. 8 GB nicht gerendert werden. Denken Sie immer daran– soweit möglich – Renderinstanzen zu verwenden, sofern Sie mehrere gleichartige Objekte in der Szene haben. Darüber hinaus kann ProRender auch mittels der CPU rendern, die zwar meist langsamer ist, aber den vollen Arbeitsspeicher des Rechners nutzen kann.
- Viele gewohnte, spezialisierte Einstellungen in Cinema 4D (z.B. viele Lichteinstellungen) funktionieren aufgrund der Priorisierung physikalisch korrekter Ergebnisse nicht. Details hierzu finden Sie unter Limitationen.
- Sie benötigen eine – allerdings oft schon vorhandene – möglichst leistungsstarke Grafikkarte.
Noise und Renderzeiten
Im Vergleich zu den älteren Cinema 4D Renderern vollzieht sich das Rendern in der Ansicht bzw. im Bild-Manager nicht der Reihe nach Bucket für Bucket, sondern im kompletten Bild mit einem sich mit fortschreitender Renderzeit auflösendem Noise:
Von links nach rechts zunehmende Renderzeit. ProRender feuert für jedes Pixel eine Vielzahl von Strahlen ("Samples") in die Szene. Das Ergebnis (=Farbe) eines jeden solchen Samples wird für jedes Pixel fortwährend berücksichtigt und im Bild-Manager zu den vorherigen Samples hinzugefügt und diese insgesamt gemittelt. Mit fortschreitender Zeit ergeben sich pro Pixel also immer mehr Samples: das Ergebnis wird besser.
Der fundamentale Unterschied zu den älteren Renderern besteht in der theoretischen "Unendlichkeit" dieses Vorganges. Das Renderergebnis wird mit der Zeit immer besser/genauer. Die noisige/körnige Anmutung des Bildes wird immer geringer, bis der Noise nach einer unendlichen Zeit nicht mehr vorhanden ist.
Natürlich hat niemand Zeit, unendlich lange zu rendern; das ist auch überhaupt nicht nötig. Der Rendervorgang kann jederzeit abgebrochen werden: entweder manuell (wenn Sie der Meinung sind, das Bild ist gut genug) oder mittels einiger Endbedingungen (z.B nach einer vorgegebenen Zeit).
Das menschliche Auge ist es von Fotos und Videos her gewohnt, einen gewissen, hochfrequenten Noise in einem Bild als realistisch zu interpretieren. Der Sensor in einer digitalen Kamera produziert ebenfalls einen solchen Noise. Somit ist ein Noise wesentlich weniger störend, als ein niedrig frequenter Noise (= größere, mitunter flackernde Flecken im Bild), der beispielsweise beim Rendern mit einem Irradiance Cache zustande kommt.
Der ProRender hat jedoch einige Mechanismen eingebaut, mit denen Sie den Noise reduzieren können. An erster Stelle steht hier der Denoiser. Damit kann der Noise wirkungsvoll (allerdings mit einigen Nachteilen behaftet, wie z.B. dem Verlust von Details: Sie tauschen im Grunde Qualität gegen Zeit) bekämpft werden. Allerdings gilt: echte Renderzeit lässt sich durch nichts ersetzen.
Physikalisch korrektes Rendern und die Cinema 4D Parameter
Der ProRender unterstützt nicht alle von Cinema 4D bereit gestellten Einstellungen. Dadurch, dass er auf physikalisch korrektes Berechnen getrimmt ist, können viele Einstellungen und Workflows, die diesem physikalischen Ansatz widersprechen, nicht genutzt werden.
Wenn Sie z.B. mal einen Blick auf die diversen Einstellungen einer Lichtquelle werfen: es gibt in der Realität weder Lichter, die eine lineare Helligkeitsabnahme, noch harte Schatten (sondern stets Flächenschatten), noch radiale Farbabnahmen etc. haben. Genauso fallen für die Kamera (z.B. Stereorendering, Linsenverzerrung etc.), wie auch für Materialien (hier haben z.B. die Materialkanäle Diffusion, Umgebung, Nebel, Glühen und Illumination keine Funktion) einige Einstellungen weg. Multi-Passes, sowie einige Objekte (z.B. Boden-, Hintergrund-, Umgebungs-Objekt etc.) funktionieren ebenfalls nicht. Auch das Render-Tag wird nur teilweise unterstützt.
Sie sehen, die Einschränkungen betreffen primär die für das Rendern wichtige Bereiche wie Lichtquellen, Kamera, Materialien.
Hinweis:
Bei Auswahl von ProRender werden alle Parameter von Materialien, Lichtern, Kameras, Tags und Rendereinstellungen ausgegraut bzw. ausgeblendet, die nicht mit dem ProRender funktionieren! Unrealistische Einstellungen wie z.B. negative Lichtintensität können zwar vorgenommen werden, bleiben aber ohne Wirkungen.
Beachten Sie auch die Limitationen.
Andererseits müssen Sie sich um viele Einstellungen überhaupt nicht mehr kümmern. Zum Beispiel:
- Eine neu erzeugte Lichtquelle wirft automatisch (nicht deaktivierbare) Schatten.
- Global Illumination wird standardmäßig berechnet, es müssen keine komplizierten GI-Parameter justiert werden.
- Sie möchten Caustics – die streng genommen natürlich auch zur Global Illumination gehören – rendern. Es müssen keine Spezialfunktionalitäten eingestellt werden. Aktivieren Sie im Material die Kanäle Spiegelungen bzw. Transparenz. Fertig.
- Es gibt keine separaten Qualitätseinstellungen für Flächenschatten, Matteffekte etc.
Allgemein lässt sich festhalten: beim Einsatz von ProRender sollten Sie möglich wenig "tricksen", sondern beim Aufbau der Szene darauf achten, dass sie möglichst der Realität nachempfunden ist. Beachten Sie z.B. folgendes:
ProRender und Lichtquellen
Lichtquellen gehören für einen Renderer zu den wichtigsten Elementen. Für maximalen Realismus sollten Sie Flächenlichter (z.B. Physikalisches Licht) verwenden. Es funktionieren zwar auch die Typen Punkt, Spot und Unendlich, allerdings sind diese z.B. im Schattenwurf (harte Raytrace-Schatten) eher unrealistisch, da jede Lichtquelle in der Realität ein Volumen bzw. eine Fläche hat.
ProRender unterscheidet im gerenderten Ergebnis nicht zwischen einem Lichtquellen-Objekt vom Typ Fläche und einem Objekt, das ein leuchtendes Material trägt.
War es bei den GI-Lösungen der Standard-Renderer so, dass die Strahltiefe bei beiden Lichtquellentypen nicht einheitlich war, so verhalten sich beide jetzt gleich. Bei einer Strahltiefe von z.B. 1 werden nur die Oberflächen beleuchtet, die die Lichter direkt "sehen".
Noch einiges Wissenswertes zu Licht:
- (Physikalische) Lichtquellen haben, wie in der Realität auch, ausschließlich eine Helligkeitsabnahme, die umgekehrt proportional zum Quadrat der Entfernung ist.
- ein leuchtendes Material strahlt nur in die Richtung, auf deren Polygonseite sich die Oberflächennormale befindet.
- Flächenlichtquellen können jede Form annehmen (Tab "Details"), nicht aber die eines Splines.
- Lichtquellen werfen grundsätzlich einen nicht deaktivierbaren Schatten. Beleuchten Sie wie in der Realität auch, dort gibt es ebenfalls keine schattenlosen Lichter.
- Die Lichtautomatik sorgt bei keinen eigenen Lichtquellen für eine HDRI-Beleuchtung.
- Sollen Lichtquellen-Objekte Caustics erzeugen, müssen Sie vom Typ "Fläche" sein.
- ProRender wertet GI Portale aus (s. Portal). Besonders für Innenräume (die primär durch von außen durch z.B. Fenster hereinfallendes Licht beleuchtet werden) sind diese zu empfehlen. Beachten Sie aber, dass ersatzweise – so weit möglich – Polygonlichter als Glas verwendet werden können. Dieser rendern wesentlich schneller als Portale.
ProRender und Materialien
Die wichtigste Änderung bzgl. Materialien ist sicherlich der Wegfall der Glanzlicht-Funktionalität. Es gibt für den ProRender "nur" noch Spiegelungen mittels des Reflektivitäts-Kanals (beachten Sie in diesem Zusammenhang den Befehl oder Neues physikalisches Material). Sie sollten also Flächenlichtquellen oder Polygonlichter verwenden, wenn sich diese direkt auf dem Objekt spiegeln sollen.
ProRender und der Physikalische Himmel
ProRender arbeitet mit dem Physikalischen Himmel zusammen. Allerdings werden nicht alle Funktionalitäten unterstützt. Ähnlich wie Shader, die nicht nativ von der Grafikkarte unterstützt werden, behilft sich ProRender, indem der Himmel (unter Ausschluss aller verwendeten Lichtquellen, die der Physikalische Himmel ansonsten verwendet) intern in ein 2D-Textur gebacken wird. Die Größe der zu backenden Textur kann im Tab "Details" des Physikalischen Himmels unter Textur: Vorschaugröße eingestellt werden.
Alle Effekte des Physikalischen Himmels, die nicht gebacken werden können, kann ProRender auch nicht rendern. Im Umkehrschluss bedeutet das, die für ProRender gültigen Einstellungen finden Sie in den vier Tabs
- Zeit und Position
- Himmel
- Wolken
- Details
Nicht funktionale Parameter werden ausgegraut.
Optimale Szenen
Beim GPU-Renderer handelt es sich derzeit um einen "unidirektionalen, unbiased Pathtracer". Solche Renderer sind am besten für folgende Szenen geeignet:
- Szenen unter "freiem" (HDRI-)Himmel
- Produktvisualisierungen
- Innenszenen mit großen Lichtquellen
D.h. Szenen, die großzügig ausgeleuchtet sind, mit vielen Bereiche, die direkt von Licht beschienen werden, sind optimal. Hier wird sich der Noise am schnellsten auflösen. Innenraumszenen, die nur durch kleine, wenige Lichtquellen beleuchtet werden, tun sich schwerer als ein zu visualisierendes Objekt, das von allen Seiten von einem HDRI-Himmel umgeben ist.
Das heißt für andere Szenen nicht, dass es nach einer längeren Renderzeit nicht ebenfalls zu guten Ergebnissen kommen kann. Aber: es dauert eben länger, bis sich der Noise klärt.
"Unbiased" bedeutet im wesentlichen, dass bei hinreichend langer Renderzeit ein physikalisch korrektes Ergebnis zu erzielen ist. Im Gegensatz hierzu gibt es die beiden, älteren Standard-Renderer und den Physikalischen Renderer, bei denen es sich um "biased" Renderer handelt. Diese arbeiten oft mit vereinfachenden Tricks, um z.B. Renderzeiten und Speicherbedarf klein zu halten. Hier sind physikalisch korrekte Ergebnisse nicht immer zu erreichen. In den Händen erfahrener Anwender lassen sich mit diesen natürlich trotzdem sehr gute, überzeugende Ergebnisse erzielen.
Artefakte an niedrig aufgelösten Objekten
Sollte es bei Reflexionen und Brechungen zu solchen Artefakten (hier an einem niedrig aufgelösten Zylinder) kommen, so erhöhen Sie die Unterteilung (im Beispiel wäre das bei einem Zylinder Segmente Umfang). Die gleiche Problematik samt Lösung kann sich beim Übergang von direkt beleuchteten zu schattigen Bereichen ergeben.
Limitationen
Die folgende Liste erhebt keinen Anspruch auf Vollständigkeit (was im einzelnen nicht unterstützt wird, sehen Sie an den ausgegrauten, bzw. nicht vorhandenen Einstellungen bei Auswahl von ProRender in den Rendervoreinstellungen).
- Team Render, stereoskopisches Rendern,Volumenrendering (Hair, Sketch and Toon, PyroCluster), Thinking Particles und Einziges Material werden nicht unterstützt.
- Es wird nur das Cinema 4D Standard-Material (also keine der im Material-Manager unter "Materialien/Erweiterungen" aufgeführten, die im Wesentlichen 3D-Shader sind) unterstützt.
- Im Reflektivitätskanal werden die Typen Anisotropie, Irawan (Gewebte Textilien) und die Kompatibilitätsmodi (dort mit "alt" aufgeführt) nicht unterstützt. Auch die Einstellungen im Untertab "Ebene: Sampling" sind ohne Funktion. Dieser und die nächsten 3 Punkte gelten für die alten Materialien.
- Absorption im Transparenzkanal wird nicht unterstützt.
- Im Normalen-Kanal funktioniert nur die Methode "Tangente" und im Displacement-Kanal wird nur ein Teil der Sub Polygon Displacement Einstellungen unterstützt. Das Displacement kann im Unterschied zu den alten Renderern etwas anders ausfallen.
- Die Einstellungen des Material-Kanals "Illumination" werden nicht unterstützt (hierbei handelt es sich um GI-Einstellungen der Standardrenderers).
- Im Material-Tag wird die Option Material addieren genau so wenig wie das Aufbringen von Materialien auf nur eine Polygonseite (es wird stets auf beide Seiten projiziert) funktionieren. An Projektionsarten fallen Kamera- und Frontal-Mapping flach. Es wird nur ein UVW-Tag pro Objekt (und zwar das erste) ausgewertet.
- Im Render-Tag werden nur die wichtigsten Optionen unterstützt, mit denen Sie Objekte für die Kamera unsichtbar und Transparenz, Brechung und Spiegelung auf Objektbasis schalten können.
- Für die Rendervoreinstellungen gilt: Das Field-Rendering funktioniert nicht.
- ProRender muss derzeit viele Shader in 2D Bitmaps umwandeln (die meisten Shader laufen nicht nativ auf der Grafikkarte), um diese auswerten zu können. Das funktioniert für einige Shader besser als für andere. Shader, die keine UVs nutzen (z.B. 3D Noise), einige blickwinkelabhängige (z.B. Dünnfilm), Licht benötigenden (z.B. Chanlum), Szenendaten benötigend (z.B. Variations-, und andere MoGraph-Shader) oder erst zur Renderzeit (z.B. Ambient Occlusion) berechnet werden, können hier keine befriedigenden Ergebnisse erbringen (s.a. in diesem Zusammenhang die Einstellungen zur Umwandlung dieser Shader in Bitmaps; z.B. Texturgröße X). Die Bitmaps werden nicht zwischengespeichert, sondern bei jedem Rendervorgang neu erzeugt, was durchaus einige Zeit dauern kann.
Diese Shader sind davon nicht betroffen, da sie von der Grafikkarte berechnet werden können: Farbe, Bitmap, Karo, Normalenrichtung, Noise (nur 2D-Modi), Farbverlauf (nur 2D-Modi) und Fresnel.- Die Noise-Shader werden im Detail anders gerendert als beim Standard- oder Physikalischen Renderer. Die verschiedenen Noisetypen bewahren trotzdem ihre Charakteristika, sind aber nicht renderidentisch.
- Backen mittels ProRender wird nicht unterstützt.
- Die Kamera unterstützt folgende Dinge nicht: Stereoskopie, Linsenverzerrung, Vignettierung, Chromatische Aberration und die veralteten, manuellen Schärfentiefe für Tiefenpässe.
- Die Lichtquelle unterstützt folgende Dinge nicht: die Typen Eckiger Spot, Paralleler Spot, Eckiger paralleler Spot, das Deaktivieren von Schatten pro Lichtquelle, volumetrisches Licht, die allermeisten Spot-Parameter des Tabs "Details" (bis auf die Flächenlichtgrößen und einige andere spezfischen Flächenlichteinstellungen), die Einstellungen des Tabs Schatten, Caustics, Noise, Linsen. Außerdem haben die Optionen Umgebungsbeleuchtung, Materialfarbe, Glanzlichter, GI Beleuchtung und Separater Pass des Tabs "Allgemein" keine Funktion.
- Beachten Sie, dass der ProRender etwas empfindlicher auf die Polygonnormalenrichtung reagiert, als die anderen Renderer. Sollten sich unerklärliche Renderergebnisse zeigen, kontrollieren Sie die Normalenrichtung.
- Die folgenden Elemente werden nicht unterstützt: Boden-, Hintergrund-, Vordergrund-, Umgebungs-Objekt und die das Rendern betreffenden Einstellungen des Darstellungs-Tags.
- Für das Himmel-Objekt gibt es eine Reihe von Einschränkungen: Material-Tag-Parameter auf dem Himmel (der Himmel selbst kann natürlich rotiert werden), Render-Tag, Stapeln von Materialien, Mischmodi und Materialkanalkombinationen werden (der Ebenen-Shader schon!) nicht unterstützt. Es wird auch nur 1 Himmel-Objekt in der Szene berücksichtigt.
- Die Renderergebnisse werden nicht mit denen der Standard-Renderer übereinstimmen. Dazu sind die zugrundeliegenden Prinzipien der Renderer zu verschieden.