Shading, Lighting & Rendering mit Cinema 4D R19 (Teil 3)

In dieser 5-teiligen Artikelreihe eröffnen wir dem gewandten Cinema-4D-Nutzer tiefgehende Einblicke in die Bereiche Shading, Lighting & Rendering. Im 3. Teil der Reihe werfen wir einen gründlichen Blick auf die wichtigsten Bestandteile guten Shadings: die in Cinema 4D enthaltenen Shader und was man damit anstellen kann.
Die fiktive „Volksarena Düsseldorf“ aus dem nicht kommerziellen Filmprojekt „Unter Freiem Himmel“ (www.fb.com/unterfreiemhimmel). Dieses VFX-Filmset ist Tummelplatz für Shader, darunter Rücklicht, Ambient Occlusion, Lumas, Noises, Farbverlauf, u.v.a.

In den beiden vergangenen Ausgaben dieser Artikelreihe haben wir uns mit Beleuchtungsmodellen / BRDFs und folgend mit dem Materialsystem von Cinema 4D, Texturen im Allgemeinen und deren Projektion befasst. Mit dem Studium von Shadern wenden wir uns nun einem essenziellen Bestandteil einer 3D-Szene zu, der maßgeblich die Wirkung von Licht und Schatten im Raum bestimmt. Wir erinnern uns: Shader sind prozedurale Texturen, die auflösungsunabhängig Objektoberflächen beeinflussen können, bspw. durch das Erkennen von Lichteinfall, Oberflächenausrichtung und Annäherung von Objekten. Durch ihre prozedurale Natur können sie aber auch reale Oberflächeneigenschaften (Marmor, Holz etc.) nachbilden.

Ebene, Lumas, Fresnel & Co

Wir befassen uns in diesem Artikel ausschließlich mit Channel-Shadern, also Shadern, die in den relevanten Materialkanälen durch das Shader-Dropdown-Menü rechts vom Begriff „Textur“ zu erreichen sind (Bild 1). Mit Klick auf das jeweilige Vorschaubild des Shaders gelangen wir in dessen Detail-Einstellungen. Unser Interesse gilt dabei den Shadern, die für die Ergänzung eines Licht-Setups relevant sind, in Kombination miteinander komplexere Strukturen nachbilden oder bestimmte Aufgaben übernehmen können.

Bild 1: Das Shader-Dropdown-Menü mit dem Unterpunkt „Effekte“. Hier findet sich in Sachen Shadern das Gelbe vom Ei …

Oberflächen-Shader wie „Holz“, „Tiles“, „Steinpflaster“ etc. werden wir ausklammern – diese sind quasi selbsterklärend und nach typischer Cinema-4D-Manier leicht zu überblicken. Auch die betagten SLA-Shader (Smells Like Almonds), Pyrocluster, Hair etc. werden nicht Gegenstand unserer Betrachtungen sein.
Nach dem Blick auf die wichtigsten funktionalen Shader werden wir uns exemplarisch ein paar Shader-Setups ansehen, die entweder lichtabhängig verschiedene Effekte simulieren oder nach unseren Vorgaben komplexe Strukturen nachbilden.

Farbe

Dieser unscheinbare Shader wird schnell unterschätzt, da er schlicht und ergreifend eine Farbe erzeugt. Voreingestellt weiß bietet der Farbe-Shader die nützliche Funktion, in Shader-Setups (der Kombination aus mehreren Shadern) einen Untergrund zu erzeugen – wie die Grundierung auf einer Leinwand. Mehr dazu bei den Beispielen später.

Fresnel

Der Fresnel-Shader geht auf Arbeiten des französischen Mathematikers Augustin Jean Fresnel (1788 – 1827) zurück, genauer gesagt auf seine Erkenntnisse zur Reflexion elektromagnetischer Wellen an Objekten. Zentraler Begriff beim Fresnel-­Shader ist der Blickwinkel, in dessen Abhängigkeit ein integrierter Farbverlauf angewendet wird: Je spitzer der Blickwinkel auf die betreffende Fläche, desto mehr wird das linke Ende des Verlaufs angewendet (voreingestellt weiß). Je rechtwinkliger der Blick, desto mehr wird das rechte Ende des Verlaufs angewendet (voreingestellt schwarz).
Der Fresnel-Shader ist essenziell für eine natürliche Darstellung von Spiegelungen (s. Teil 1 der Artikelreihe). Er kann im Reflektivitätskanal im Bereich „Ebene: Maske“ einer Ebene dazu verwendet werden, Spiegelungen eine glaubwürdige Blickwinkelabhängigkeit zu verleihen. Dafür verfügt der Shader unter der Checkbox „Physikalisch“ direkt über eine ganze Latte von Presets.
Fresnel-Funktionen für Spiegelungen sind allerdings auch direkt in alle spiegelnden Reflektivitätsmodelle integriert, nämlich im Bereich „Ebene: Fresnel“. Dort kann gewählt werden zwischen Presets für dielektrische Stoffe (nicht oder schwach stromleitend / nicht metallisch wie Kunststoffe, Holz, Glas, Wasser etc.) und Leiter (Metalle). Abweichend davon können auch freie Werte eingegeben werden.

Bild 2: Der Blick Richtung Horizont zeigt ein blickwinkelabhängiges Verhalten der Asphalt-Reflexion – ein typischer Fall von Fresnel-
Effekt. Außerdem finden sich im Bild die natürlichen Vorbilder für Noises, den Rücklicht-Shader und das Shader-Setup Smart AO – erkennen Sie wo?

Angewendet für diffuse Reflexion (Farbkanal) ist der Fresnel-Shader dezent eingesetzt ideal zur Nachbildung von Oberflächen, deren blickwinkelabhängige Rauheit einen leicht staubigen oder satinierten Eindruck erzeugt (Bild 2).

Farbverlauf

Der Farbverlaufs-Shader erzeugt 2D-Verläufe (Oberflächen) oder 3D-Verläufe (Objekte durchdringend). Die 2D-Verläufe können dabei linear entlang der Textur-U- oder -V-Achse oder in bestimmten Formen laufen wie z.B. „Kreisförmig“, „Box“ oder „Stern“. Sie können per „Winkel“ gedreht, per „Turbulenz“ und „Frequenz“ mit animierbaren Unregelmäßigkeiten aufgebrochen und per Deaktivierung von „Zyklisch“ auch über Texturkacheln hinaus aufgetragen werden.
Die 3D-Verläufe hingegen durchdringen das Volumen des Objekts. Start- und Endwerte von 3D-Verläufen beziehen sich dabei auf das unter dem Dropdown-Menü „Raum“ gewählte Bezugssystem, z.B. das Achsensystem des Objekts oder der Welt. Durch Start- und Endwerte auf mehreren Achsen kann z.B. ein linearer 3D-Verlauf angewinkelt werden.

Bild 3: Still aus meiner Animation „Oberbilk“ (https://vimeo.com/231428985): Die leichte Beschädigung an der Unterseite der Fensterbank in Bild O3 bspw. ist ein simpler 2D-Farbverlauf mit leichter Turbulenz. Das Kerzenwachs wiederum ist exemplarischer Einsatzort von Subsurface Scattering.

Farbverläufe sind verkannte Multitalente, da sie sehr einfach recht komplexe Phänomene simulieren können. Die leichte Beschädigung an der Unterseite der Fensterbank in Bild 3 bspw. ist nichts anderes als ein simpler 2D-Farbverlauf mit einer ganz leichten Turbulenz.

Ebene

Um Shader in C4D modular und flexibel miteinander zu kombinieren, ist der Ebenen-Shader Dreh- und Angelpunkt. Der Ebenen-Shader dient quasi als Container, in dem nach Photoshop-Manier sogenannte Ebenen (Shader oder Bitmaps) miteinander unterschiedlich deckend gemischt, mit anderen Ebenen maskiert oder mit verschiedenen Ebenen-Modi verrechnet werden. Tipp: Wird im betreffenden Materialkanal erst eine Textur geladen und dann der Ebene-Shader aufgerufen, ist die Textur automatisch im Ebenen-Shader als Ebene enthalten.
Zu den Ebenen-Modi gehört neben Altbekannten wie „Normal“, „Multiplizieren“ und „Ineinander kopieren“ auch der Modus „Ebenen Maske“. In diesem Ebenen-Modus wird die darüberliegende Ebene (also ein Shader oder Bitmap) mit den Graustufen der darunterliegenden „Ebenenmaske“-Ebene maskiert.
Im Ebenen-Shader können per Klick auf „Bild“ oder „Shader“ Bitmaps geladen oder Shader erzeugt werden. Mit Rechtsklick auf eine solche Ebene können Bitmaps und Shader zudem kopiert („Shader / Bild kopieren“) und eingefügt werden („Shader / Bild einfügen“). Zur besseren Organisation kann mit dem Button „Ordner…“ ein selbiger erzeugt werden, um Ebenen darin unterzubringen. Außerdem können mit dem Button „Effekt…“ Manipulationen wie Verzerrung, Gradationskorrektur etc. an darunterliegenden Ebenen vorgenommen werden (siehe Bild 4).

Bild 4: Der Ebenen-Shader in Aktion: Durch das Überlagern und Mischen prozeduraler Shader und Effekte entsteht hier einfach mal die Oberfläche der Sonne.
Noise

Noise-Shader erzeugen zufällig wirkende Rauschmuster in verschiedensten Ausprägungen. Mit ihnen ist es möglich, Oberflächen eine zufällige aber reproduzierbare Unregelmäßigkeit zu verleihen. So können Strukturen wie Fels, Moos, Wasser, flache Wolken etc. gezielt nachgebildet oder leichte Unregelmäßigkeiten auf ansonsten zu perfekten Oberflächen angebracht werden (Bild 5).

Bild 5: Shot aus dem Musikvideo „Do Panjereh“ (https://vimeo.com/205065943). Die Makrostrukturen (Krater, Gebirge etc.) entstanden durch Noises in einem Displace-­Deformer. Die Mikro-Strukturen hingegen wurden mithilfe des Normalizer-Shaders
im Normalen-Kanal realisiert.

Die Art des Noises wird über das Dropdown-Menü „Noise“ gewählt. Die verfügbaren Noises hören auf illustre Fantasienamen wie „Poxo“, „Buya“ etc. Der Parameter „Oktaven“ gibt dabei die Recheniterationen an, Angaben zu Größe, Animationsgeschwindigkeit und Gradation (Clipping, Helligkeit etc.) machen das Noise individuell anpassbar. Einen Überblick über die grundverschieden scheinenden Noises bieten deren Verwandschaftsgrade: So ist „Wavy Turbulence“ nichts anderes als eine verschmierte Variante von „Turbulence“ und dieser nichts anderes als ein „Noise“ mit nur einer Oktave. Auch „Displaced Turbulence“ und „FBM“ scheinen Verwandte von „Noise“ und „Turbulence“ zu sein. Noises werden in verschiedenen Bezugssystemen angewendet, die über das Dropdown-Menü „Raum“ gewählt werden können. Davon sind vier Bezugsysteme von praktischer Bedeutung: „UV (2D)“ projiziert das Noise auf die UV-Koordinaten der Textur, „Textur“ verwendet die im Textur-Tag angegebenen Koordinaten (Vorsicht: derzeit sind die Verhalten von „UV (2D)“ und „Textur“ vertauscht).
Noises können aber auch dreidimensional auf Objekte angewendet werden. Dadurch entfallen sämtliche Fragestellungen eines korrekten Textur- bzw. UVW-Mappings – eine angenehme Eigenschaft. „Objekt“ wendet das Noise dreidimensional auf das Achsensystem des Objekts an, „Welt“ bezieht sich auf das Achsensystem der Welt. Wird ein Noise im Raum „Welt“ angewendet, wird das Noise zwar auch dreidimensional angewendet, Drehungen, Bewegung und Skalierungen des betreffenden Objekts werden aber ignoriert.

Colorizer

Dieser Shader verwandelt Graustufeninformationen von hineingeladenen Bildtexturen oder Shader in die Farben eines frei definierbaren Farbverlaufs. Wird im betreffenden Materialkanal erst eine Textur geladen und dann der Colorizer-Shader aufgerufen, ist die Textur automatisch im Colorizer-Shader als Quelle enthalten. Mit dem Colorizer-Shader können Bitmaps und Shader auch invertiert werden, nämlich durch Definieren eines S/W-Verlaufs, der umgekehrt wird. Mehr dazu später. Ein Colorizer existiert übrigens auch als Ebenen-Effekt im Ebenen-Shader (Bild 4).

Filter

Der Filter-Shader bietet die Möglichkeit, hineingeladene Bitmaps und Shader ähnlich wie in Adobe Photoshop einer Gradations- und Farbkorrektur zu unterziehen. Selbst Gradationskurven können angewendet werden. Somit bleibt zur Korrektur von Texturen der Umweg über Photoshop oft erspart.

Die folgenden Shader finden Sie im Shader-Dropdown-Menü unter „Effekte“.

Ambient Occlusion: Ambient Occlusion (AO) ist ein Shader, der unabhängig von Licht einen diffusen Abdunklungseffekt in Vertiefungen und Ecken erzeugt
(Bild 6). In Cinema 4D liegt AO als globaler Rendereffekt in den Rendervoreinstellungen und als Channel-Shader vor. Für differenzierte Ergebnisse sollte man AO tunlichst als Shader verwenden. Prädestinierter Einsatzort für den AO-Shader ist der Diffusionskanal eines Materials.

Bild 6: Das reale Pendant zu Ambient Occlusion – diffuser Annäherungsschatten – tritt in der Realität nur an wenig beleuchteten Stellen bzw. in Kernschatten auf.

AO tastet seine Umgebung auf die Abdeckung durch andere Objekte innerhalb einer „Maximum Strahlenlänge“ ab. Für dieses Sampling wird ein adaptives, also intelligentes Verfahren verwendet, welches uns auch an anderen Stellen in Cinema 4D immer wieder begegnet: Für weniger komplexe Bereiche werden „Minimum Samples“ und für komplexe Bereiche „Maximum Samples“ verwendet. Dazwischen wird mit dem Parameter „Genauigkeit“ gewichtet.
Im Normalfall muss an diesen Parametern erst einmal nichts verändert wer-
den.
„Kontrast“ regelt selbigen und mit „Gegenrichtung“ besteht die Möglichkeit, dass der Sample-Prozess für die Innenseite des Objekts durchgeführt wird – also wo sich das Objekt von innen selbst abdeckt. Dies ist vor allem an Kanten der Fall. In einem Ebenen-Shader kann ein so invertiertes AO zum Beispiel dazu dienen, einen anderen Shader nur auf Kantenbereiche zu maskieren.

FallOff: Der FallOff-Shader erzeugt einen Farbverlauf anhand des Unterschieds zwischen einem frei wählbaren Vektor (X-, Y- oder Z-Achse) und der Flächennormalen. Dabei kann das Bezugssystem mit dem Dropdown-Menü „Raum“ frei gewählt werden („Objekt“ oder „Welt“). Voreingestellt bezieht sich der FallOff-Shader auf die Y-Achse (Wert 1). Mit einem engen S/W-Verlauf lässt sich so z.B. eine weiße Färbung auf allen nahezu horizontalen Flächen erzeugen.

Lumas: Lumas diente vor der Einführung des Reflektivitätskanals mit Cinema 4D R16 der Erzeugung von multiplen additiven Glanzlichtern. Die Einstellungen enthalten neben Tabs für drei verschiedene Glanzlichter (spekulare Reflexion) und Anisotropie auch das Tab „Shader“. Im Hinblick auf die Spekular-Tabs müsste dieses Tab konsequenterweise „Diffus“ heißen, da es sich ausschließlich um die diffuse Beleuchtung kümmert. Stellt man das dortige Farbfeld auf reines Weiß, „Beleuchtung“ auf 100% und deaktiviert alle Glanzlichtparameter, funktioniert der Lumas-Shader exakt wie der Farbkanal – er sagt: „Zeig mich, wo ich im Licht bin.“ Benennen wir diese Konfiguration des Lumas-Shaders der Einfachheit halber „Diffuse-Only-Lumas“. Dieses Verhalten ist hervorragend dazu geeignet, innerhalb eines Ebenen-Shaders andere Shader oder Bitmaps auf der Licht- oder Schattenseite von Objekten zu maskieren. Mehr dazu später.

Normalenrichtung

Dieser Shader vergibt je nach Normalen-Richtung eine frei definierbare Farbe. Voreingestellt sind schwarz und weiß. Interessant wird der Normalenrichtungs-Shader, wenn man mit ihm innerhalb eines Ebenen-Shaders andere Shader oder Bitmaps je nach Normalenrichtung maskiert. So kann z.B. im Alphakanal eines Materials der Schriftzug eines Logos nur auf die Seite der positiven Normalenrichtung maskiert werden.

Normalizer

Der Normalizer-Shader wandelt die Graustufeninformationen aus Bildtexturen oder Shadern in Normal Maps. Die Anwendung erfolgt entsprechend im Normalen-Kanal. Hervorragend geeignet, um auf Low-Poly-Objekten scheinbar hochauflösende Unebenheiten zu erzeugen. Die voreingestellten 50% Stärke sind meist deutlich zu schwach, praktikable Werte liegen meist bei 300 – 500%. Die unter „Filter“ verfügbaren Berechnungsarten (Condensed etc.) bestimmen die Genauigkeit und „Delta“ die Breite des Prägeeffekts (Bild 5).

Rücklicht

Dieser Shader simuliert den Effekt der Transluzenz (also partielle Lichtdurchlässigkeit) auf dünnen Objekten. Denken Sie bspw. an ein sonnenbeschienenes Blatt, auf dessen Rückseite sich die Silhouette eines Käfers abzeichnet. Der Rücklicht-Shader kann bei einer großen Anzahl einzelner dünner Objekte, bspw. einem Strauch oder einer Laubkrone, effektiv den aufwendigeren Shader Subsurface Scattering ersetzen. Aber auch Planen wie in der Arena im Titelbild profitieren von diesem Effekt-Shader (siehe Titelbild).

Subsurface Scattering

Während der Rücklicht-Shader eine einfache Transluzenz dünner Objekte simuliert, ist der Subsurface-Scattering-Shader (SSS) zur Darstellung von Transluzenz voluminöserer Objekte vorgesehen. Der Fokus liegt dabei auf der Streuung von Licht im Inneren von Objekten und dem Wiederaustreten des Lichts. Aufgrund des Letzteren ist der Einsatzort für SSS der Leuchten-Kanal eines Materials. Typische Anwendungsfälle sind z.B. Kerzen und deren Wachs (siehe dazu Bild 3).
Zur einfacheren Handhabung stehen Presets („Sahne“, „Huhn“ etc.) zur Verfügung. Der SSS-Effekt kann unter „Shader“ mit Bitmaps (Textur-Interpolation ausschalten!) oder Shadern definiert werden. Außerdem kann die Erzeugung von SSS im Tab „Lichter“ auf bestimmte Lichtquellen beschränkt werden.

Variation

Der Variation-Shader variiert Materialien zufallsbasiert und arbeitet dabei objektbasiert (Objekte, Mograph-Klone etc.) und / oder polygonbasiert. Bei Letzterem kann bestimmt werden, in welchen Schritten die Variation stattfinden soll, also z.B. „alle 18 Polygone“. Der Parameter „Wahrscheinlichkeit“ definiert die Häufigkeit der Variation. Für die Variation einer Textur bestehen verschiedene Möglichkeiten. Im Bereich „Farbvariation“ können über den Button „Hinzufügen“ weitere Bitmap-Texturen geladen und mit „Wahrscheinlichkeit“ und Buttons zur anteiligen Verteilung entsprechend gestreut werden. Außerdem kann ein Farbverlauf in verschiedenen Modi angewendet und Zufallsfarben hinzugemischt werden. Der Bereich „Farbgradingvariation“ bietet Variation durch Parameter wie „Kontrast“, „Helligkeit“ etc., während der Bereich „UV-Variation“ bei Bedarf für eine räumliche Veränderung der UV-Kacheln sorgt (Bild 7).

Bild 7: Das reale Vorbild für den Variations-Shader: subtile Farbnuancen auf zahlreich vorkommenden Objekten.

Die aufgeführten Shader sind für sich betrachtet schon zu einigem im Stande. Ihr volles Potenzial entfalten sie allerdings erst in Kombination miteinander – in sogenannten „Shader SetUps“. Prinzipiell werden hier Shader in einem Ebenen-Shader als Container miteinander kombiniert und verrechnet.

Smart AO

AO erzeugt einen schattenähnlichen Abdunklungseffekt – unabhängig von Licht – und ist daher auch in direkt beleuchteten Bereichen sichtbar und führt so erst einmal zu einem schmutzigen Erscheinungsbild. Nicht umsonst wurden Vorgängerversionen von AO in Cinema 4D als „Dirt-Shader“ betitelt. Beobachten wir jedoch das Pendant zu AO in der Realität, nämlich diffuse Schatten, so sind diese in direkt beleuchteten Bereichen prinzipbedingt natürlich nicht vorhanden (Bild 6).
Mit ein paar geschickten Handgriffen können wir AO innerhalb eines eigens gebauten Shader-Setups jedoch auf Kernschattenbereiche beschränken. Nach dem Motto „Es muss nicht physikalisch korrekt sein, es muss nur physikalisch korrekt aussehen“ verwandeln wir also „AO“ in „Smart AO“.
Um Ambient Occlusion auf weniger oder nicht beleuchtete Bereiche zu maskieren, benötigen wir zwei Komponenten:
Zum einen einen Shader, der lichtsensitiv ist und feststellen kann, wo Licht auftrifft und wo nicht. Diesen Shader kennen wir: der Lumas-Shader, und zwar in der „Diffuse-Only“-Konfiguration, siehe oben.
Und zum anderen benötigen wir einen Container zum Verrechnen und damit auch Maskieren von Shadern untereinander. Auch diesen Container kennen wir: den Ebenen-Shader.
Hinweis: Zum Testen des nun folgenden Smart-AO-Setups empfiehlt sich eine einfache Testszene mit einer schattenwerfenden Lichtquelle und einem Umgebungsobjekt mit aktivierter Umgebungshelligkeit von gut 50%. Erzeugen wir also im Diffusionskanal des Materials durch Klick auf den Dreieck-Button neben „Textur“ zunächst einen Ebenen-Shader als Container. Im Ebenen- Shader erzeugen wir dann durch Klick auf „Shader“ einen Ambient-Occlusion-Shader und justieren dessen „Maximum Strahlenlänge“, also die maximale Distanz, mit der AO seine Umgebung abtastet. Zurück im Ebenen-Shader erzeugen wir einen Lumas-Shader in „Diffus-only“-Konfiguration (s.o.). Danach ziehen wir im Ebenen-Shader den Lumas unter den AO-Shader und stellen den Ebenen-Modus des Lumas auf „Ebenen-Maske“. Als Resultat maskieren wir so AO auf direkt beleuchtete Bereiche. Um AO nur auf Schattenseiten zu bekommen, müssen wir dieses Verhalten nun umkehren: „Zeig mich, wo ich im Schatten bin.“
Rechtsklicken wir also auf den Lumas und wählen „Colorizer“. Dadurch befördern wir den bestehenden Lumas als Input in einen neuen Colorizer-Shader. Im Colorizer ändern wir den voreingestellten Verlauf auf einen Schwarz-Weiß-Verlauf. Folgend rechtsklicken wir in den Colorizer-Verlauf und wählen „Knoten umkehren“ – so invertieren wir das „Zeig mich, wo ich im Licht bin“ des im Colorizer liegenden Lumas in ein „Zeig mich, wo ich im Schatten bin“. Der AO-Shader wird nun zwar auf die Schattenseite von Objekten maskiert. Allerdings werden durch die Maskierung leer bleibende Bereiche vom Diffusionskanal als schwarz interpretiert. Um das zu beheben, erzeugen wir im Ebenen-Shader einen Farbe-Shader. Diesen ziehen wir unter den Colorizer-Shader – quasi als Grundierung unserer Leinwand. Et voilà, unsere Testszene zeigt: Ambient Occlusion wird auf Schattenbereiche maskiert (Bild 7b).

Bild 7b: Das Smart AO Setup im Material-Manager

Nun macht es noch Sinn, den Kontrast-­Parameter des AO-Shaders auf 20 bis 30% anzuheben. Im Basis-Tab des Ebenen-Shaders können wir das Setup nun noch als „Smart AO“ benennen. Außerdem sollte man sich das ganze als Preset speichern: Zurück im Diffusionskanal klicken wir auf den Dreieck-Button neben „Textur“, wählen „Preset speichern“ und haben Smart AO so dauerhaft als Preset verfügbar. Das Setup ist durch das Speichern als Preset jederzeit zur Hand und kann mit wenigen Klicks angepasst werden.

Shadow Luminance

Wenn direktes Licht auf Oberflächen trifft, wird dieses als indirektes Licht reflektiert, abgelenkt und gestreut. Gerade indirektes Licht trägt deutlich zur Glaubwürdigkeit einer Szene bei. Ohne den Einsatz von Automatismen, wie z.B. der Berechnung globaler Illumination (GI), erfordert die Erzeugung indirekten Lichts in einer 3D-Szene ein hohes Können des Artists.
Indirektes Licht kann dabei in einer verortbaren Variante auftreten, dem sogenannten „Farbbluten“ (Color Bleeding), welches eindeutig einem direkt beleuchteten farbigen Objekt als Quelle zuzuordnen ist, oder aber als äußerst diffuse Beleuchtung auf nicht eindeutig beleuchteten Seiten eines Objekts (Bild 8).
Im Bild der roten Tür im Gewölbegang sind beide Varianten vertreten.

Bild 8: Indirektes Licht in zweierlei Gestalt: Die rote Tür erzeugt ein rötliches und räumlich gut verortbares Farbbluten. Die weniger eindeutig beleuchteten Flächen an der Decke hingegen zeigen ein sehr diffuses Licht, dessen Quelle kaum verortbar ist.

Könnte man letzteren Fall – sehr diffuses indirektes Licht in Schattenbereichen – nicht auch als Selbstleuchten durch den Leuchten-Kanal eines Cinema-4D-Materials erzeugen? Dazu müsste die Primärfarbe eines Objekts als Selbstleuchten auf seine Schattenseiten maskiert werden. Eine Abwandlung des Smart-AO-Setups kann dazu verwendet werden, genau das zu bewerkstelligen. Im Material unseres Objekts rufen wir das oben erzeugte Smart-AO-Preset auf – diesmal jedoch im Leuchten-Kanal. Im Ebenen-Shader entfernen wir zunächst den AO- und den weißen Farbe-Shader. Nun kopieren wir den Inhalt des Farbe-Kanals in unseren Ebenen-Shader und fügen ihn oberhalb des Colorizer-Shaders ein (Shader-Dropdown-Menü „Shader kopieren“, „Shader einfügen“). Alternativ erzeugen wir einen Farbe-Shader in der ungefähren Primär-Farbe des Inhalts des Farbkanals. Die über dem Colorizer-Shader liegende Ebene wird nun auf die Schattenseite des Objekts maskiert. Nun müssen wir nur noch die Deckkraft dieser Ebene herunterregeln. 5 bis 10% sind hierbei ein guter Startwert. Unter „Basis“ benennen wir unser Setup als
„Shadow Luminance“ und speichern es ebenfalls als Preset für weiteren Gebrauch (Bild 9).
Shadow Luminance ist ein hervorragender Ansatz, um die ansonsten aufwendige Erzeugung sehr diffusen indirekten Lichts zu ergänzen. Es kann in vielen Fällen die manuelle Platzierung von extra Lichtquellen oder gar den Einsatz von Global Illumination ersetzen, besonders im Wechselspiel mit Smart AO (Bild 10).
Hat man Smart AO im Diffusionskanal und Shadow Luminance im Leuchten-Kanal geladen, können beide miteinander interagieren, indem man im Diffusionskanal die Checkbox „Wirkung auf Leuchten“ aktiviert. Dadurch wird bestimmt, dass Smart AO in seinem Wirkungsbereich den Effekt von Shadow Luminance aufhebt.
Mit Smart AO und Shadow Luminance haben wir nun zwei Shader-Setups kennengelernt, die bei der Simulation von diffusen Schatten und indirektem Licht mächtige Verbündete sein können. Lichtquellen, Schattenarten und Techniken für elegantes Lighting lernen wir dann in der nächsten Ausgabe dieser Artikelreihe kennen.

Marc Potocnik studierte Kommunikations-Design an der FH Düsseldorf und ist Gründer und Inhaber des Animationsstudios renderbaron in Düsseldorf. renderbaron realisiert seit 2001 hochwertige 3D-Animationen und Visual Effects für renommierte Kunden wie Audi, ZDF, Fraunhofer Institut, Siemens, u.a.

Maxon Feature

Maxon Feature

TEILEN
Vorheriger ArtikelFilmplus - Festival für Filmschnitt und Montagekunst
Zum 18. Mal wird Köln zum Zentrum der Welt des Filmschnitts: Vom 26.-29. Oktober 2018 treffen sich Filmenthusiasten bei Filmplus, um den Zauber der Filmmontage zu zelebrieren.
Nächster ArtikelAfter Effects CC 2018 Herbst Update
Von Adobe gibt es ein Update, was wir in dem kommenden Herbst Update erwarten dürfen.

Kommentar schreiben

Please enter your comment!
Please enter your name here

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.