Antialiasing
Da ein Bild immer aus einer Anzahl von Pixeln zusammengesetzt ist, besitzt es eine grobkörnige Struktur, die umso stärker auffällt, je geringer die Auflösung ist. Besonders an den Kanten von Flächen sieht man diese Störungen, wo statt einer geraden Kante lauter kleine Treppchen (die einzelnen Pixel) sichtbar sind. Dieses Phänomen nennt man Aliasing.
Um Aliasing zu beseitigen, bietet Ihnen Cinema 4D eine Vielzahl von Antialiasing-Einstellungen an.
Beim Rendern wird zunächst die Renderkameraansicht in ein Pixelraster eingeteilt (dieses definieren Sie durch Breite und Höhe in den Rendervoreinstellungen). Prinzipiell kann jetzt in jedem Pixel eine Menge passieren, z.B. kann dort teilweise eine Objektkante durchlaufen, eine Textur teilt den Pixel in 2 verschieden gefärbte Hälften etc. Jedes Pixel kann aber nur einen Farbwert haben. Eine schwierige Aufgabe, aus diesen Vorgaben ein Bild zu berechnen, das visuell ansprechend mit homogen und natürlich verlaufenden Objekt- und Farbkanten versehen sein soll.
Eine Lösung für diese Problematik ist das Zerlegen jedes Pixels in sog. Subpixel, für die jeweils separat ein Sample (=Farbwert) berechnet wird. Dieser Vorgang wird auch Oversampling (oder auch vereinfacht einfach "Sampling”; in Deutsch etwa "(Farb-)Probe nehmen”) genannt.
In einem zweiten Schritt werden diese Samples in einer um den jeweiligen Pixel räumlich eng begrenzten Fläche zu einem einzigen Pixelfarbwert zusammengefasst (das machen die im Dialog weiter unten angeordneten Filter).
Das auszugebende Bild wird ohne Antialiasing berechnet (auch evtl. vorhandene Render-Tags, deren Einstellungen was anderes verheißen, bleiben unbeachtet). An Objekt- und Farbkanten sind treppenförmige Verläufe zu erkennen.
Dieser Modus ist besonders für schnelle Testrenderings geeignet, wo Qualität keine Rolle spielt.
Diese voreingestellte Option glättet alle Objektkanten (automatisch mit 16*16 Subpixeln).
Hiermit schalten Sie (zusätzlich zur Objektkantenglättung) Cinema 4Ds adaptives Antialiasing (dabei werden zusätzliche Subpixel nur an kritischen Stellen berechnet, also bei Pixeln, die in ihrer Farbe stark vom Pixelnachbarn abweichen) an, was auf Farbkanten wirkt (z.B. auch auf Schatten, Objekte hinter Transparenzen etc.). Dieses kontrollieren Sie mit einer Reihe dann freigeschalteter Parameter.
Min Level
Max Level
Schwellwert (Farbe) [0..100%]
Mittels dieser Parameter kontrollieren Sie das adaptive Antialiasing von Cinema 4D, was nichts anderes bedeutet, als dass bei nebeneinander liegenden Pixel, die sich farbmäßig zu stark voneinander unterscheiden, Subpixel berechnet werden, während bei unkritischen Bereichen (große einheitliche Farbflächen) möglichst keine Subpixel angenommen werden.
Die voreingestellte Kombination dieser 3 Parameter reicht für die meisten Anwendungen bereits völlig aus.
Bei Min Level stellen Sie die Anzahl an Subpixel ein, die auf jeden Fall stets mindestens berechnet wird. Meistens reicht hier das voreingestellte 1x1. Sollten Sie jedoch feststellen, dass es bei "haarfeinen” Bereichen zu Artefakten kommt, indem z.B. Schattenbestandteile verschluckt werden, so sollten Sie hier höhere Werte einstellen.
Max Level ist hingegen die Subpixelverteilung, die an kritischen Stellen (meist Bereiche hoher Kontraste, also Farbkanten oder auch Objektkanten hinter Transparenzen) vorgenommen wird. Dieser Wert kann beispielsweise beim Rendern von Glas erhöht werden, um filigrane Details nicht zu verschlucken.
Bei folgendem Bild sieht man auf den ersten Blick kaum einen Unterschied im Renderergebnis zwischen den verschiedenen Einstellungen. Nur wenn Sie das wirklich Maximale aus dem Rendering herausholen wollen, müssen die Einstellungen optimiert werden (die natürlich mit einer wesentlich längeren Renderzeit einhergehen):
Der Schwellwert wiederum definiert, ab welcher Farbabweichung am entsprechenden Pixel Max Level anspringt. Kleine Werte lassen nur kleine Abweichungen zu, große Werte brauchen schon große Kontraste, um zu glätten.
Bei dieser Abbildung sehen Sie jeweils einen Farbfächer hinter einem Glasblock. Wozu das Glas? Wie oben schon erwähnt, würde ohne Glas ansonsten nur die Objektkantenglättung greifen (das adaptive Antialiasing wirkt nur bei Farbkanten bzw. Objektkanten hinter Transparenzen oder in Spiegelungen). Wie Sie sehen, wird bei einem kleinen Schwellwert überall geglättet, da Cinema 4D dann nur kleine Farbabweichungen zulässt, bei denen nicht geglättet wird. Bei zunehmendem Schwellwert müssen die Kontraste immer größer werden, damit überhaupt geglättet wird.
In einer durchschnittlichen Szene sind bei einem Schwellwert (Farbe) von 10% ungefähr 40% aller Pixel betroffen, während es bei einem Schwellwert von 5% schon 90% aller Pixel sind. 0% führen übrigens dazu, dass jeder Pixel des zu berechnenden Bildes antialiased wird; auch an den Stellen, wo es überhaupt nicht nötig wäre.
Diese 3 beschriebenen Parameter haben einen extrem großen Einfluss auf die Rendergeschwindigkeit! Zu hohe Einstellungen können die Renderzeit problemlos verzehnfachen, ohne dass das Rendering wesentlich anders aussieht. Die voreingestellten Werte bringen in den meisten Fällen schon sehr gute Ergebnisse bei moderaten Renderzeiten.
Sie können die Rendergeschwindigkeit im Wesentlichen beeinflussen durch Manipulieren der Parameter Min. Level / Max. Level, des Render-Tags und des Schwellwerts (Farbe). Besonders der Schwellwert (Farbe) kann bei zu kleiner Einstellung zum Glühen Ihres Rechners führen. In einer durchschnittlichen Szene sind bei einem Schwellwert (Farbe) von 10% ungefähr 40% aller Pixel betroffen, während es bei einem Schwellwert von 5% schon 90% aller Pixel sind. 0% führen übrigens dazu, dass jeder Pixel des zu berechnenden Bildes antialiased wird; auch an den Stellen, wo es überhaupt nicht nötig wäre.
Sie haben die Möglichkeit, allen Objekten Ihrer Szene Render-Tags zu verpassen. In diesem Render-Tag können für jedes Objekt einzeln die Antialiasing-Parameter definiert werden. So können Sie z.B. einem besonders filigranen Objekt die Parameter Min. Level 4x4 und Max. Level 16x16 verpassen.
Die Option Objekt Render-Tags auswerten definiert nun global, ob diese Render-Tags bzgl. Antialiasing ausgewertet werden sollen.
In bestimmten Fällen kann es passieren, dass das Antialiasing in Multi-Passes und Alpha-Kanälen nicht mit seiner gewohnten Qualität arbeitet. Das kann z.B. passieren, wenn Sie dünne Strukturen hinter brechenden Transparenzen vor schwarzem oder fast schwarzem Hintergrund rendern lassen wollen.
Sie sollten dann die Option aktivieren. In den meisten Fällen ist auch sinnvoll, den Schwellwert (Farbe) zu reduzieren.
Kurz zur Funktionsweise eines Antialiasing-Filters: Abhängig von den Antialiasing-Einstellungen werden pro Pixel eine Anzahl von Subpixeln berechnet, deren Farben dann mittels verschiedener Funktionen für das Pixel (ein Pixel kann immer nur eine Farbe haben) zusammengefasst werden. Der Filter funktioniert sowohl für den Antialiasingtyp Geometrie (Objektkantenglättung) wie auch Bestes (Farbkantenglättung).
Allgemein gesagt, regelt der Filter, wie scharf und "knackig" Kanten gerendert werden.
In obiger Abbildung sehen Sie 9 Pixel. Gerendert wurde mit 4x4 Subpixel. Betrachten Sie sich einmal den mittleren Pixel. Für diesen wurden insgesamt 16 Subpixel berechnet. 15 sind hellgrau, einer rot. Sie sehen in diesem Pixel eine Kurve (Mitchell in diesem Fall) abgebildet. Diese Kurve stellen Sie sich flächig um die Mitte des Pixels angeordnet vor. Diese Kurve bestimmt dann, welche Subpixel wie stark ins Gewicht fallen, wenn die Gesamtpixelfarbe errechnet wird. Da die Filtergröße (Parameter Filterbreite und Filterhöhe (also die flächenmäßige Ausdehnung, in der Subpixel berücksichtigt werden) bis auf 4 Pixel ausgedehnt werden kann, kann sich die obige Kurve auch wesentlich weiter ausbreiten. D.h. im Umkehrschluß, dass benachbarte Pixel größtenteils die gleichen Subpixel sehen und annähernd die gleiche Farbe haben. Knackig scharf können Kanten dann natürlich nicht mehr dargestellt werden.
Im Folgenden sehen Sie die Kurven für die acht verschiedenen Filter und darunter jeweils ein Renderbeispiel.
Wenn Sie sich die obigen Kurven betrachten, wird Ihnen auffallen, dass einige Kurven (Mitchell, Kubisch und besonders Sinc) sogar unter Null fallen. Das bedeutet, das beim Rendern an den entsprechenden Kanten sogar kontrastierende Farbwerte errechnet werden, die in der Szene gar nicht vorkommen. Das dient dem Zweck, Kanten schärfer erscheinen zu lassen. Unter gewissen Voraussetzungen kann das aber zu Problemen führen (siehe Option Negative Komponenten abschneiden).
Die Wahl des Filters hat in den meisten Fällen übrigens wenig Auswirkungen auf die Rendergeschwindigkeit.
Für Animationen kann es angeraten sein, einen weichen Filter zu verwenden. Zu viel Schärfe an den Kanten kann im Video später nämlich zu einem Flackern führen.
Eigene Größe
Filterbreite [0.5..4]
Filterhöhe [0.5..4]
Die Filterbreite/-höhe definiert, wie viele Subpixel (gerechnet vom Pixelmittelpunkt aus) bei der Berechnung des Pixelfarbwertes berücksichtigt werden (s.a. diese Abbildung).
Solange die Option Eigene Größe deaktiviert ist, wird ein idealer Wert für Filterbreite und Filterhöhe verwendet, der dann auch jeweils eingeblendet wird. Die Werte beziehen sich übrigens auf das Pixel, d.h. ein Wert von 0.5 bei beiden Parametern bedeutet: vom Pixelmittelpunkt werden die Subpixel 0.5 Pixelbreite links und rechts und 0.5 Pixelhöhe oben und unten davon berücksichtigt. Also alle Subpixel auf der Pixelfläche. Höhere Werte greifen dann auch entsprechend auf die Nachbarsubpixel zu, womit das Rendering an Farbkanten zunehmend unschärfer wird.
Negative Komponenten abschneiden
Wie Sie hier sehen können, gibt es einige Filter (Kubisch, Mitchell, Sinc) deren Funktion Bereiche kleiner 0 durchläuft. Wenn Sie die Option Negative Komponente abschneiden aktivieren, werden die negativen Bereiche abgeschnitten. Wozu ist das gut? Bei Verwendung des Linearen Workflows, hohen Farbintensitäten und 32-Bit-Rendering kann das beim Compositing (Zusammenfügen von Bildbestandteilen unter Verwendung von Alphakanälen) zu Problemen führen.
Wenn Sie sich in obiger Abbildung die rechten beiden Bildchen ansehen: es handelt sich dabei um das Rendering eines Würfels, der mit einem leuchtenden Material versehen ist und dem Antialiasing-Filter Sinc. Links sehen Sie den Effekt ohne aktivierte Option, rechts mit aktivierter Option.
Hier können Sie global die MIP-Stärke regeln. Dabei werden aber auch die lokalen Material-Einstellungen (auch hier kann eine MIP-Stärke definiert werden) berücksichtigt. Der Wertebereich der globalen Einstellung liegt zwischen 0% und 500%, wobei 100% der normalen Einstellung, 0% keinem entfernungsabhängigen MIP/SAT-Mapping und beispielsweise 200% doppelt so starkem MIP/SAT-Mapping entspricht.
Sie sollten diesen Wert hochschrauben, wenn Sie feine Texturen vorliegen haben, die flach zur Kamera stehen. Das Antialiasing tendiert dann weniger dazu, eigentlich kontinuierliche Linien als unterbrochene Linien darzustellen.
Seit der Einführung der Render- und Multiinstanzen ist es problemlos möglich, Unmengen von komplexen Objekten zu rendern. Stellen Sie sich jetzt vor, Sie haben am Horizont Ihrer Szene ein komplettes Haus aus einigen tausend Polygonen stehen, was gerendert aber nur 1 Pixel groß ist. Um solche Bereiche (und auch solche mit hohen Subsurface Scattering-Einstellungen) effektiv zu berechnen, gibt es hier das Auswahlmenü Kleine Fragmente.
Es gibt in Cinema 4D intern 2 Renderverfahren, die automatisch optimiert angewendet werden, ohne dass Sie sich bisher darum kümmern mussten. Nämlich der sog. "Scanliner" und der "Raytracer". Letzterer kann mit den eben beschriebenen Zuständen wesentlich effektiver umgehen als der Scanliner, d.h. er rendert um ein Vielfaches schneller.
Nun, könnte man sagen, dann soll doch der Raytracer die komplette Arbeit übernehmen. Leider hat dieser den Nachteil, dass er qualitativ das etwas schlechtere Antialiasing liefert und bei Szenen gegensätzlicher Natur wie oben beschrieben, auch langsamer ist. Deshalb gibt es die Einstellung Hybrid, die das Beste der 2 Rendermethoden vereint. Vereinfacht gesagt, werden hier alle Bildbereiche, wo mehr als 50 Polygone pro Pixel sichtbar sind, vom Raytracer behandelt, während sich um die anderen Bereiche der Scanliner kümmert. Die voreingestellte Option Hybrid sollte also in den meisten Fällen die richtige Option sein. Nur Scanline ist die von früheren Cinema 4D-Versionen (vor R11.5) gewohnte Renderweise.
Nur Raytracer sollte nur dann eingestellt werden, wenn Sie Szenen wie oben beschrieben, vorliegen haben. Es wird dann schneller als Hybrid berechnet (bei etwas schlechterer Antialiasing-Qualität).