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

Im letzten Teil unserer Serie warfen wir einen gründlichen Blick auf die Basis von Shading, Lighting und Rendering, nämlich Methoden zur Geometrie-Glättung und verschiedene Beleuchtungsmodelle / BRDFs. In diesem Teil bauen wir auf diese Basis auf und verschaffen uns mit einem tiefgehenden Einblick in das Materialsystem von C4D eine Grundlage für die spätere Arbeit mit Texturen, Shadern, Licht und Schatten.
„Schnitt durch die Erde“ – Visualisierung geologischer Erdschichten. Bitmap-Texturen (NASA) und regelbasierte Shader-Setups bilden eine nahtlose Einheit, die dieser Szene erst ihre Glaubwürdigkeit verleiht.

Shader und Bitmaps – Texturen in zweierlei Gestalt

Im letzten Teil unserer Serie haben wir uns Methoden zur Glättung von Geometrie-Facetten angesehen. Zentral sind dabei die Arbeiten von Henri Gouraud (1971) und Bui Tong Phong (1975). Vor allem aber das Phong-Shading zielt darauf ab, das Oberflächenverhalten eines Objekts bei begrenzter Polygon-Anzahl so zu glätten, dass der Eindruck einer glatten Oberfläche mit makellosen Reflexionen entsteht. Diffuse und spekulare Reflexionen wirken also, als ob unendlich viele Polygone im Spiel sind.

Wenn man so will, fügen Phong-Shading, das Phong-Beleuchtungsmodell und alle darauf aufbauenden BRDFs im Grunde einen Detailgrad hinzu, der durch die reine Anzahl von Polygonen nicht gegeben ist. Ganz besonders fällt das bei BRDFs auf, die wie Cook-Torrance oder Oren-Nayar von mikroskopisch kleinen Unebenheiten der Oberfläche ausgehen, ohne dass diese tatsächlich als Polygone vorliegen.
Einen ähnlich aufwertenden Ansatz verfolgen Texturen: Sie erhöhen als Überzug für 3D-Modelle den visuellen Detailgrad eines Objekts, ohne den Detailgrad der Geometrie zu erhöhen. So muss z.B. ein Bauteil aus Carbonfaser nicht aus zahllosen mikroskopisch feinen Carbonfasern modelliert werden, sondern die entsprechende Textur erzeugt diesen Detailgrad (Bild 1). Für die Anwendung von Texturen gibt es dabei zweierlei Herangehensweisen – Shader und Bitmaps.

Bild 1: Carbonfasern als Paradebeispiel für die Simulation von feinsten Geometriedetails durch Bitmap-Texturen. Müssten die einzelnen Fasern mit ihren Mikrofacetten modeliert werden, hätte man lange zu tun.
  • Shader – regelbasierte Muster: Shader sind kleine Programme innerhalb einer 3D-Software oder einer Game Engine, die Oberflächeneigenschaften nach bestimmten mathematischen Regeln vorgeben. In C4D kann ein leicht turbulenter Farbverlaufs-Shader z.B. an Kanten einer Fensterbank den Effekt einer leichten Beschädigung erzeugen (Bild 2). Shader können jedoch nicht nur natürliche Oberflächen nachahmen, sie können auch interaktiv reagieren: So erzeugt z.B. der Ambient-Occlusion-Shader eine Abdunklung in Abhängigkeit zur Objektannäherungen.
Bild 2: Shader im Einsatz: An der Unterkante der Fensterbank simuliert ein schwach turbulenter Farbverlauf den Effekt einer leichten Kantenbeschädigung. Auf der Tischplatte erzeugt ein dezenter Ambient-Occlusion-Shader in Annäherung an die Teelichter eine diffuse Verschattung. Beim Glas der Kerzen sorgen innere Totalreflexion und Austrittsreflexion für die typischen Doppelspiegelungen, und ein Subsurface-Scattering-Shader im Leuchtenkanal des Wachses sorgt für Lichtstreuung unter der Oberfläche.
  • Bitmaps – Fototapeten: Neben Shadern können auch Bitmaps, also Pixelbilder wie .tiff oder .jpg als Textur verwendet werden. Diese Bilder werden nach bestimmten Projektionsverfahren wie eine Fototapete auf das betreffende Objekt aufgetragen. Im Gegensatz zu Shadern sind Bitmap-Texturen leicht zu berechnen und erzeugen für sich genommen einen hohen Realismus, der allerdings mit mangelnder Flexibilität und begrenzter Bitmap-Auflösung bezahlt wird.
Bild 3: Kombination aus Bitmaps und Shadern im Einsatz: Bei der Tischplatte definieren Bild-Texturen die diffuse Farbe sowie Streuung und Unterbrechungen der Spiegelung. Ein Fresnel-Shader hingegen bestimmt die Blickwinkelabhängigkeit der Reflexion. Im Diffusionskanal wiederum sorgt Ambient Occlusion für dezente diffuse Schatten.

Im Arbeitsalltag eines 3D-Artists sind es meist Kombinationen aus Shadern und Bitmap-Texturen, die für ein Objekt oder eine Szene zum Einsatz kommen. Ein striktes Entweder-oder steht meist nicht zur Diskussion, da beide Texturierungsverfahren ihre Vor- und Nachteile haben. Sehen wir uns dazu zwei Beispiele an: Auf der Tischplatte im abgebildeten Interior-Close-up
(Bild 3) definiert eine Bitmap-Textur die diffuse Reflexion (Albedo) der Tischplatte, während Shader für ein lichtabhängiges Auftreten von Ambient Occlusion in der Nähe der Objekte und eine blickwinkelabhängige Stärke der spekularen Reflexion sorgen. Die Erdansicht im Titelbild wiederum macht starken Gebrauch von hochauflösenden Bitmap-Texturen der NASA, um diffuse Reflexion und Silhouetten von Landmassen zu definieren. Shader dienen im Bild zur Erzeugung von Atmosphäre und geologischen Schichten.

Schaltzentrale Materialmanager

Für einen Einstieg in das Materialsystem von C4D widmen wir uns zunächst der Schaltzentrale zur Erstellung und Vergabe von Materialien: dem Materialmanager. Wichtige Funktionen finden sich dabei im Menü des Materialmanagers: „Erzeugen“ erlaubt das Erstellen eines neuen Materials ebenso wie der Shortcut Strg+N. Der Menüpunkt bietet aber weitere Möglichkeiten wie z.B. die Erzeugung eines physikalischen Materials (mehr dazu später) oder eines Spezial-Shaders (Hair, Architektur-Gras, Pyrocluster oder die etwas angestaubten BhodiNut-Shader). Der Menüpunkt „Bearbeiten“ bietet einige Optionen zur Organisation und Darstellung der Materialien, und „Bearbeiten“ hält wichtige Funktionen wie z.B. das Entfernen unbenutzter oder doppelter Materialien bereit.

Bild 4: Dreh- und Angelpunkt zur Materialverwaltung:
der Materialmanager

Materialien werden im Materialmanager als frei benennbare Icons dargestellt. Das Zuweisen von Materialien zu bestimmten Objekten geschieht in C4D dann mittels Drag-and-drop: Das Material-Icon im Materialmanager wird einfach auf das gewünschte Objekt im Objektmanager gezogen. Dort wird es dann als Textur-Tag neben dem Objekt angelegt. Die Materialzuweisung kann auch mittels Drag-and-drop auf das Objekt im Viewport geschehen.
Ein Rechtsklick auf das Material-Icon im Materialmanager bietet interessante Optionen wie z.B. das Selektieren des zugehörigen Objekts im Objektmanager (Befehl „Textur-Tags / Objekte selektieren“) oder das Selektieren der Material-Icons von gerade aktiven Objekten (Befehl „Materialien der aktiven Objekte selektieren“). Ein Doppelklick auf das Material-Icon öffnet den
Materialeditor, der dann die eigentliche Möglichkeit zum Bearbeiten des Materials bietet.

Das Kanalisieren von Materialeigenschaften

Im Materialeditor von C4D zeigt sich dann die kanalbasierte Natur von C4D-Materialien. Der Begriff „Kanal“ ist dabei im Grunde nur ein Synonym für einen bestimmten Aspekt eines Materials (Bild 5).

Bild 5: Schaltzentralen nebeneinander: Materialeditor, Textur-Tag im Objektmanager und dessen Parameter im Attributmanager. Im Materialeditor bietet der ausgeklappte Farbwähler im Modus „Farbkreis“ zahlreiche Möglichkeiten zur Erzeugung von Farbharmonien. Details zur Texturprojektion finden sich im entsprechenden Ausklappmenü des Textur-Tags.

Farbe

Der Farbkanal definiert mit einem Farbwähler, einem Helligkeitsregler zur Beimischung gegenüber Schwarz und der Möglichkeit zum Laden und Beimischen von Bitmap-Texturen oder Shadern die diffuse Reflexion des Materials. Diese Grundausstattung ist allen farbrelevanten Kanälen eines Materials gemein. Im Farbkanal steht außerdem ein Ausklappmenü für Beleuchtungsmodelle („Lambert“ oder „Oren-Nayar“, siehe Teil 1 der Artikelreihe) zur Verfügung. Der Farbkanal erfüllt eine wesentliche Aufgabe einer Textur: Er sagt im Grunde: „Zeig mich, wo ich im Licht bin“.
Der oben erwähnte Farbwähler ist seit R18 ein mächtiges Werkzeug zur systematischen Erzeugung, Analyse und Veränderung von Farben. Er verfügt über drei verschiedene Modi:
Farb-Kreis: Hier sind Farben kreisförmig um einen Mittelpunkt angeordnet und können in einer separaten Helligkeitsskala variiert werden. Mit den Plus- und Minus-Buttons lassen sich Probenpunkte im Farbkreis erzeugen und frei verschieben. Oberhalb des Farbkreises finden sich Buttons zur Erzeugung von verschiedenen Farbharmonien gemäß der künstlerischen Disziplin der Farbenlehre. Erzeugte Probenpunkte werden durch diese in bestimmte Relationen zueinander gebracht, um so der gewählten
Farbharmonie ­– z.B. „Komplementär“, „Tetrade“ oder „Gleichwinklig“ – zu entsprechen (Bild 5).
Im Farb-Spektrum sind Farben als lineares Spektrum angeordnet und können im Feld links davon nach Helligkeit und Sättigung variiert werden.
Bei Farbe-von-Bild können Farben aus einem geladenen Referenzbild entnommen werden. Auch hier lassen sich mit Plus- und Minus-Buttons Probenpunkte erzeugen und frei verschieben.
Das Dropdown-Feld „Durchschnitt“ bietet dabei die Wahl zwischen pixelgenauer oder durchschnittsbasierter Farbbestimmung. Ein Klick auf das kleine Mosaik-Symbol ruft das „Detail“-Regelfeld auf, mit dem sich eine Vergröberung des Bildes erzeugen lässt, die die Durchschnittsfarbe eines Bildbereiches wiedergibt.
In allen drei Modi kann zwischen verschiedenen Farbräumen gewählt werden, nämlich RGB, HSV und einer per Färben-Funktion („T“ für „Tint“) erweiterten Kelvin-Skala. Neben diesen drei Möglichkeiten steht noch ein Farbmischer zur Erzeugung einer Farbe aus zwei Mischquellen, ein Farbfeld-System zum Organisieren und Abspeichern von Farbfeldern und eine Farbpipette für Farbproben vom gesamten Desktop zur Wahl.
Die reichhaltigen Möglichkeiten des Farbwählers können durch den „Kompakt“-Modus optisch reduziert und übersichtlicher gemacht werden. Dieser Modus findet sich als Button direkt unter dem „Farbe“-Feld und kann in den Programmvoreinstellungen („Einheiten“) als Standard definiert werden.
Diffusion

Aufgabe dieses Kanals ist die Abdunklung von Oberflächen. Graustufeninformationen aus Bitmap-Texturen oder Shadern werden ausgewertet, um neben dem Farbkanal wahlweise den Leuchtenkanal, Glanzlicht oder Spiegelung abzuschwächen. Die Benennung „Difussion“ ist daher eher missverständlich. Die häufigste Verwendung des Diffusionskanals ist der Einsatz des Ambient-Occlusion-Shaders oder smarter Abwandlungen davon (siehe dazu Bild 3).

Leuchten

Der Leuchtenkanal definiert ein Selbstleuchten im Sinne einer ambienten, beleuchtungssunabhängigen Aufhellung. Im Sinne des Phong-Beleuchtungsmodells wäre er für die ambiente Komponente zuständig (siehe letzter Teil der Artikelreihe). Eine häufige Verwendung des Leuchtenkanals ist der Einsatz des Subsurface-Scattering-Shaders (Bild 2). In Kombination mit Global Illumination kann der Leuchtenkanal außerdem tatsächliches Licht erzeugen.

Transparenz

Dieser Kanal ist für Transparenz und Refraktion von durchsichtigen Materialien zuständig. Werden Bitmap-Texturen oder Shader geladen, variieren diese die Transparenz nach Farbe und Helligkeit. Der Kanal verfolgt eine Reihe wichtiger Parameter: Brechung definiert den Brechungsindex (IOR, Index of Refraction) des Materials (z.B. Wasser 1,33). Fresnelreflexion erzeugt eine blickwinkel­abhängige Reflexion (ja, Sie haben richtig gelesen – im Transparenzkanal!). Die „Innere Totalreflexion“ erzeugt dabei eine Reflexion in Richtung der Oberflächennormalen, während „Austrittsreflexion“ eine Reflexion in Gegenrichtung der Oberflächennormalen erzeugt. Mit diesen beiden Reflexionen können z.B. die Doppelreflexionen von Glasgefäßen erzeugt werden (siehe Bild 2). Das Ausschalten der Austrittsreflexion kann allerdings ein etwas aufgeräumteres Aussehen erzeugen und dabei auch noch Rechenzeit sparen. Absorptionsfarbe und -distanz bestimmt, über welche Distanz das Licht in welcher Farbe geschluckt wird – ideal zur Erzeugung von gefärbten Flüssigkeiten – und zu guter Letzt definiert der Matteffekt, ob und wie stark die Transparenz gestreut wird, z.B. für Milchglas. Das Verfahren ist Sample-basiert, kann also auf die Renderzeit drücken.

Reflektivität

Der Reflektivitätskanal in C4D beherbergt sämtliche reflektiven Aspekte eines Materials in Form verschiedener Reflektivitätsmodelle. Diese können als Ebenen nach Photo-
shop-Manier übereinander gestapelt, miteinander verrechnet und gemischt werden. Es kann dabei aus einer Reihe verschiedener Reflektivitätsmodelle gewählt werden. Diese sind im Grunde BRDFs, bei denen (bis auf zwei Ausnahmen) ausschließlich die spekular reflektiven Aspekte ausgewertet werden.
Dabei begegnen wir wieder den Namen alter Bekannter: So stehen für scharfe oder gestreute Spiegelreflexionen z.B. die BRDFs
Beckmann, GGX, Phong oder Ward bereit. Die Reflektivitätsmodelle, die zur Erzeugung einer echten Spiegelung fähig sind (Beckmann, GGX, Ward, Anisotropie), verfügen zusätzlich über eine eigene Glanzkomponente, sodass für jedes Modell Glanz- und Spiegelungsreflexion getrennt gesteuert werden können. Hier ein Überblick über die wichtigsten Modelle:

  • Beckmann als voreingestelltes Standardmodell ist passend für die meisten Anwendungsfälle wie z.B. Kunststoff, Wasseroberflächen, Glas etc. Bei ausgeprägter Reflexionsrauigkeit zeigt sich im Kurvendiagramm ein recht abruptes Ende in der Abnahmekurve. Das Modell Ward ist sehr ähnlich, erzeugt bei höherer Rauigkeit aber etwas matter reflektierende Oberflächen.
  • GGX hingegen zeichnet sich durch ein deutlich breiteres, weicheres Abnahmeverhalten gestreuter (rauer) Reflexionen aus. Es ist daher ideal für Metalle mit ausgeprägt diffusen Spiegelungen geeignet (Bild 6).
Bild 6: Das GGX-Reflexionsmodell mit seinem weichen Streuungsverhalten im Einsatz für Aluminium. Metall-typisch besteht nur eine spekulare Reflexion mit Abschwächungsmodus „Durchschnitt“. Der Farbkanal und damit diffuse Reflexion ist ausgeschaltet. Typisches Reflexionsverhalten und leichte Färbung der Spiegelung entstehen durch das Fresnel-Preset „Aluminium“, welches ein leicht unterschiedliches Fresnel-Verhalten pro Spektralfarbe simuliert.
  • Anisotropie ist für die Darstellung anisotroper Materialien (also Materialien, deren Refexionen unproportional gestreckt sind) geeignet. Hierbei sollte beachtet werden, dass die Anisotropie nur greift, wenn der Reflexion ein gewisses Maß an Rauigkeit verliehen wurde. Gute Startwerte sind hier z.B. 20% Rauigkeit.
  • Irawan ist das Go-to-Modell für gewebte Stoffe. Die anisotropische Reflexion von gewebten Textilien ist nur mit diesem Modell wirklich glaubhaft zu erzeugen. Verschiedene Presets (Seide, Jeans, etc.) erleichtern den Einsatz (Bild 7).
  • Blinn (alt) oder Phong (alt) stehen zur Erzeugung reiner Glanzreflexionen zur Verfügung, die zwar nach wie vor physikalisch nicht korrekt, aber wunderbar visuell anpassbar sind (siehe Teil 1 dieser Artikelserie).
Bild 7: Das Reflexionsmodell Irawan im Einsatz für den Stoff der Couch: Ein anisotropes Reflexionsverhalten in Kombination mit Presets für Webmuster verschiedenster Art machen Irawan zum Go-to-Modell für Stoffreflexionen.
  • Lambert (diffus) und Oren-Nayar (diffus) bilden im Reflektivitätskanal eine Ausnahme, da ihre BRDFs ausschließlich hinsichtlich der diffusen Reflexion ausgewertet werden. Da ihre Spiegelung eine 100-prozentige Rauigkeit aufweist, tritt keinerlei Blickwinkelabhängigkeit mehr auf – aus der spekularen Reflexion wurde also eine diffuse Reflexion. So verhält sich die Reflexion im Grunde wie der Farbkanal, der dafür da ist, Licht komplett diffus zu reflektieren.
  • Mit Lambert (diffus) oder Oren-Nayar (diffus) können wir den Farbkanal also eigentlich ausschalten, da wir mit diesem Modell bereits eine diffuse Reflexion erzeugen – und zwar physikalisch korrekt, denn die diffuse Reflexion wird wie eine normale Spiegelung zwischen Objekten hin und her geworfen und erzeugt indirektes Licht und Farbbluten – per Definition eine Art Global Illumination. Die so erzeugte Brute-Force-GI ist nur durch den Parameter „Reflexionstiefe“ in den Optionen der Render-Voreinstellungen limitiert und verfügt über keinerlei beschleunigende Berechnungsmethoden wie z.B. Radiosity Maps oder Light Maps. Sie ist daher deutlich langsamer als die Global Illumination vom Standard- oder dem physikalischen Renderer. Da allerdings sämtliche reflektiven Aspekte eines solchen Materials unter dem Dach des Reflektivitätskanals behandelt werden, bildet es die Basis für PBR: Physically Based Rendering.
  • Abschwächungsmodi: Sämtliche Reflek­tivitätsmodelle verfügen über einen sogenannten Abschwächungsmodus. Dessen Dropdown-Menü befindet sich direkt unter dem ausgewählten Reflexionsmodell und beschreibt nichts anderes, als auf welche Art und Weise Spiegelungen oder Glanzlichter mit der Farbe aus dem Farbkanal des Materials verrechnet werden. In der Praxis zählen dabei eigentlich nur zwei Modelle. „Durchschnitt“ behandelt die Spiegelung ähnlich dem Photoshop-
    Ebenenmodus „Normal”: Die Spiegelung wirkt deckend und überschreibt bei 100-prozentiger Deckkraft vollständig den Farbkanal, sodass keine Farbe mehr zu sehen ist. Dieser Modus ist ideal für Metalle, da diese nur über eine spekulare und keine diffuse Reflexion verfügen (Bild 8).
    Der Farbkanal kann in diesem Fall also getrost ausgeschaltet werden. Und „Additiv“ behandelt die Spiegelung ähnlich dem Photoshop-Ebenenmodus „Additiv”: Es werden nur die hellen Bereiche der Umgebung gespiegelt. „Additiv“ ist ideal für Klarlack auf Autos, lackierte Hölzer, Kunststoffe, Wasser, Glas etc. Gerade bei hellen Objekten wird der Unterschied zu „Durchschnitt“ klar, da der Inhalt des Farbkanals nicht von der Spiegelung abgedeckt wird. „Additiv“ ist damit der gebräuchlichste Modus.
  • Zahlreiche Detaileinstellungen: Jede Reflektivitätsebene besitzt zudem die Möglichkeit zum Definieren von Fresnel-Abnahmen. Über den Bereich „Ebene: Fresnel“ können so z.B. Presets von dielektrischen oder leitenden Materialien verwendet werden. Darunter finden sich auch Presets für Metalle, deren gefärbte Spiegelung ja erst durch eine spektral unterschiedliche Fresnel-Abschwächung entsteht (siehe Teil 1 dieser Artikelserie). Weiterhin verfügt jede Reflektivitätsebene über Möglichkeiten zum Laden von Shadern und Bitmaps für Masken, Färbungen und Parameterveränderungen. So kann z.B. der Wert der Spiegelungsstreuung („Rauheit“) mit einem Noise-Shader variiert werden (Bild 3).
    Auch sind ebenenspezifisch Einstellungen zur Berücksichtigung des Relief- oder Normalenkanals oder zum Laden eigener Relief- oder Normalen-Maps vorhanden.

Umgebung: Dieser Kanal simuliert die Spiegelung einer Umgebung, indem eine kugelförmig angewendete Bild- oder Shader-Umgebung verwendet wird, ohne dass eine echte Reflexion stattfindet. Die Autos in der von mir erstellten Cinebench R15 OpenGL-Testszene machen davon starken Gebrauch (maxon.net/de/produkte/cinebench/).
Nebel: Erzeugt einen Nebeleffekt in geschlossenen Körpern, wobei Farbe und Distanz des Nebels definiert werden können. Der Nebelkanal berücksichtigt auch den IOR des Transparenzkanals.
Relief: Der Reliefkanal simuliert die Ablenkung der Oberflächennormalen durch Graustufeninformationen einer Bitmap oder eines Shaders. Dadurch wird eine Oberflächendeformation simuliert, die Geometrie selbst jedoch bleibt glatt und eben. Der Parameter „Parallax“ bohrt den Reliefeffekt dabei noch auf, indem ein perspektivischer Versatz hinzugerechnet wird und Relieferhebungen quasi von der Seite sichtbar werden.
Normale: Ähnlich wie im Reliefkanal wird auch hier eine Oberflächendeformation mittels Bitmap-Texturen oder Shadern simuliert. Anstatt allerdings nur einen Graustufenwert heranzuziehen (wie im Reliefkanal), werden drei RGB-Werte ausgewertet, um so definiertere und bessere
Unebenheiten zu simulieren (Bild 8).

Bild 8: Boden und Decke dieser U-Bahn-Station aus dem Film „Unter freiem Himmel“ (bit.ly/ufh_teaser) zeigen regelmäßige Strukturen durch den Einsatz von Normal-Mapping. Ein SAT-Mapping und eine Blur-Stärke von 3O% interpolieren die Details Richtung Horizont so elegant, dass mit bewegter Kamera keinerlei Artefakte oder Flackern auftreten.

Alpha: Dieser Kanal bestimmt ausgestanzte Bereiche von Objekten anhand der Graustufen von Bitmaps oder Shadern. Zur Anwendung empfehlen sich Bitmaps mit echtem Alphakanal (z.B. .tiff) der mit der Checkbox „Alpha-Bild“ automatisch erkannt wird. Im Unterschied zum Transparenzkanal wird keine optische Brechung erzeugt. Alpha-Maps sind der ideale Weg, um Texturen zu stapeln. So ist in der Abbildung der U-Bahn-Rolltreppe eine weitere Textur mit Alphakanal – eine Graffiti-­Bitmap – auf die Metalltextur der Rolltreppenwand gezogen worden. Hierbei gilt: Das rechte Textur-Tag liegt jeweils „auf“ dem Textur-Tag links davon (Bild 9).

Bild 9: Alpha-Maps und Textur-Stapelung: Das Graffiti auf der Seite der Rolltreppe und das rote Warnschild rechts sind typische Beispiele für den Einsatz mehrerer Textur-Tags auf ein und demselben Objekt.

Glühen: Dieser recht betagte Materialkanal erzeugt als Post-Effekt nach dem Rendern einen Glüheffekt um das betreffende Objekt – im Profi-Workflow eine Aufgabe für Photoshop oder After Effects. Kann also getrost ausgeschaltet bleiben.
Displacement: Der Displacement-Kanal erzeugt eine echte Oberflächenunebenheit anhand der Graustufen von Bitmaps oder Shadern. Diese wird allerdings erst beim Rendern sichtbar. Die Option „Sub-Polygon-Displacement“ sorgt für eine weitere Unterteilung der Geometrie und feinere Details beim Rendern.
Editor: Dieser Kanal definiert die Qualität der Texturvorschau und Abspieloptionen für Videotexturen im Editor.
Illumination: Hier verbergen sich Parameter zum Erzeugen und Empfangen von GI-Licht durch das Material sowie zur Erzeugung von Caustics.
Zuweisen: Der Zuweisen-Kanal zeigt die Objekte, denen das Material zugewiesen wurde, in einer Liste. Zieht man ein Objekt in diese Liste hinein, wird das Material dem Objekt zugewiesen.
Nach diesem Überblick über die Materialkanäle von Cinema 4D sehen wir uns einige Details zu den beiden Arten der Textur-Erstellung an: Bitmaps und Shader.

Weichrechnen statt Flackern

Im Materialeditor rechts neben dem Wörtchen „Textur“ findet sich ein Button mit einem kleinen weißen Dreieck darauf. Bei Klick auf diesen öffnet sich ein Menü, welches im oberen Teil eine Reihe nützlicher Funktionen enthält wie z.B „Shader / Bild kopieren“ und „- einfügen“ oder das Laden und Abspeichern von Presets. Letzteres ist vor allem im Zusammenhang mit Shader-Setups sinnvoll. Bei Klick auf das kleine Textur-Vorschaubild hingegen öffnet sich der Shader-Dialog. Dieser enthält im Reiter „Shader“ Buttons zum Neuladen des Bildes, zur Bearbeitung in einem Bildbearbeitungsprogramm oder zum Auffinden der Bilddatei im Computersystem.
Interessant wird es darunter im Ausklappmenü „Interpolation“. Bei perspektivischer Betrachtung einer Bitmap-Textur liegen zahllose Texturpixel auf einem Bildschirmpixel. Wird hier keine smarte Interpolation vorgenommen, treten fiese Moiré-Artefakte oder bei bewegter Kamera ein Flackern am Horizont auf. Eine hochwertige Textur-Interpolation ist also Pflicht – die Fototapete muss also gebügelt werden. Hierzu stehen mehrere Verfahren zur Wahl, von denen nur zwei praktische Relevanz haben: MIP und SAT.
MIP-Mapping, “Multum in Parvo“, lateinisch für „Viele in einem Platz“, ist die voreingestellte Standardmethode zur Pixelverrechnung und bietet eine gute Texturglättung bei gleichzeitig moderatem und speicherschonendem Rechenaufwand. Für hochanspruchsvolle Texturglättung bietet sich jedoch eher SAT-Mapping an.
SAT-Mapping (engl. „Summed Area Tables“) bietet eine noch bessere Annäherung und noch artefaktfreiere Texturglättung an, was jedoch mit höherem Speicherbedarf und etwas längerer Renderzeit bezahlt werden muss. SAT-Mapping bietet sich daher für hochdetaillierte Bodentexturen bis zu Größen von 4000 x 4000 Pixeln an – ab dann wird nämlich automatisch auf MIP-Mapping umgeschaltet (Bild 8). Prozedurale Shader verfügen übrigens immer über SAT-Mapping.
Im Reiter „Basis“ bietet der Shader-Dialog noch zwei weitere Möglichkeiten, falls die Texturglättung immer noch nicht ausreicht:

Blur-Offset: Mit diesem Parameter kann die Textur weichgezeichnet werden. Dabei sollten Sie jedoch sehr dezent vorgehen, da bei starker Weichzeichnung sichtbare Quadrat-Artefakte zum Vorschein kommen. Das ganze ist also nicht mit einem Gaußschen Weichzeichner zu verwechseln.
Blur-Stärke: Dieser oft unterschätzte Parameter kann Ihre Textur-Interpolation retten, da er das gewählte Mapping (MIP oder SAT) noch einmal prozentual verstärkt. Nur so waren in der Abbildung der U-Bahn-Station die Boden- und Deckenstrukturen flackerfrei in den Griff zu kriegen (Bild 8).

Videos als Texturen

Der Reiter „Animation“ des Shader-Dialogs ermöglicht es, sogar Bildsequenzen oder Videodateien als Texturen einzusetzen. Dabei bietet das Ausklappmenü „Modus“ drei Möglichkeiten zur Abspielrichtung („Einfach“ für einmalig komplettes Abspielen, „Zyklisch“ für Abspielen in Schleife und „PingPong“ für Abspielen als Vorwärts-rückwärts-Schleife).
Im Bereich „Timing“ kann definiert werden, ob die Sequenz bildgenau oder sekundengenau abgespielt wird, welcher Bereich aus der Sequenz verwendet wird oder wie oft eine Schleife wiederholt wird. Ein Klick auf den Button „Berechnen“ erfasst die gesamte Bildsequenz und errechnet sogar deren Bildfrequenz. Übrigens: Soll die Bildsequenz auch im Editor bewegt sein, muss im Kanal „Editor“ des entsprechenden Materials der Haken bei „Vorschau animieren“ gesetzt sein.

Texturprojektion – das Aufbringen der Fototapete

Nachdem wir nun einen fundierten Überblick über Materialmanager, Materialeditor, Materialkanäle, Textur-Interpolation und Shader-Dialog erlangt haben, werfen wir noch einen Blick auf die Möglichkeiten, wie Texturen – ob Bitmap oder Shader – auf Objekte aufgebracht werden können. Die Vergabe von Materialien mittels Drag-and-drop vom Materialmanager auf das Objekt und dessen Ablage als Textur-Tag haben wir bereits kennengelernt. Das Textur-Tag selbst bietet bei Klick darauf einige weitreichende Optionen, die im Attributmanager dargestellt werden (Bild 5). Hier sind die wichtigsten davon:

Selektion: In dieses Feld können bestehende Selektions-Tags hineingezogen werden. Folgend wirkt die Textur ausschließlich auf diese Polygon-Selektion.
Das Ausklappmenü „Projektion“ ist von zentraler Bedeutung für das Aufbringen der Textur.
Projektion: Man kann sich diesen Prozess im Grunde wie das Aufkleben einer Fototapete oder die Projektion eines Dias durch einen Projektor vorstellen. Es bestehen vier geometrische Projektionsarten, deren Namensgebung das Aufbringen quasi von selbst erklärt: Kugel-, Zylinder-, Flächen- und Quader-Mapping.
Diese Projektionsarten assoziieren auch direkt die Form der Objekte, für die sie idealerweise gedacht sind. So bietet sich z.B. für quaderförmige Objekte sinnfälligerweise das Quader-Mapping an, Fotos in Bilderrahmen erhalten Flächen-Mapping (Bild 10).
Frontal-Mapping: Hierbei wird die Textur aus Sicht der aktiven Kamera auf das Objekt projiziert, wobei die Größe der projizierten Textur dem Seitenverhältnis des Bildes in den Render-Voreinstellungen entspricht – ideal zum Nachmodellieren fotografierter Objekte.

Bild 1O: Unterschiedliche Textur-Projektionen und deren Einsatz: Die Fotos in den Bilderrahmen sind mit Flächen-Mapping, die Textur des Tisches hingegen mit Quader-Mapping aufgetragen. Für die Textur der weißen Stühle samt ihrer gebogenen Teile wurde UVW-Mapping verwendet.

Spat-Mapping: Diese Projektionsart ist im Grunde ein aufgebohrtes Flächen-Mapping. Die Textur wird jedoch mit zunehmender Objekttiefe schräg nach links verschoben.
UVW-Mapping: In der Arbeit mit dem 3D-Raum kennen wir bereits die drei Raumachsen X, Y und Z. Punkte eines Polygonobjekts lassen sich mit diesen Koordinaten exakt erfassen. Um nun die Punkte einer 2D-Textur exakt zu erfassen, bedarf es eines 2D-Koordinatensystems auf diesem 3D-Objekt. Und genau das sind UVW-Koordinaten.
Warum das Ganze? Solange Objekte in die oben genannten Formen-Kategorien wie Fläche, Kugel, etc. passen und keine komplizierte Geometrie aufweisen, ist man mit den o.g. Projektionsarten bestens bedient. Bei komplizierterer Geometrie, weiteren Modeling-Schritten oder gar einer Deformation des Objektes ist UVW-Mapping jedoch unumgänglich: Es nagelt die 2D-Koordinaten einer Textur quasi auf die 3D-Koordinaten eines Objektes fest – eine Eigenschaft, die die geometrischen Projektionsarten nicht haben (Bild 10).
Neben der Fixierung von Textur-Koordinaten bietet UVW-Mapping jedoch auch die Möglichkeit einer exakten Zuweisung von Texturbereichen auf eine Objektoberfläche. Dazu muss das UVW-Koordinatensystem allerdings zunächst in Bodypaint 3D entspannt und abgewickelt werden – ein Bereich, der den Rahmen dieser Artikelreihe allerdings sprengen würde.
Übrigens: Grund- und Spline-Objekte (Lathe, Extrude, etc.) sind automatisch mit UVW-Koordinaten ausgestattet. Werden diese Körper mit „C” in Polygon-Objekte gewandelt, entsteht ein UVW-Tag, das die UVW-Informationen speichert. Möchte man aus den übrigen Projektionsarten ein UVW-Mapping erstellen, gilt für Polygonobjekte der Weg über das Objektmanagermenü, um dort Tags / UVW-Tag zu erzeugen. Für Grund- und Spline-Körper gilt Objekmanagermenü > Tags > C4D-Tags > Textur-Fixierung.

Shrink-Mapping: Bei dieser Art Mapping wird die Textur kugelförmig über das Objekt gestülpt und am Südpol zusammengeschrumpft, ähnlich dem Netz auf einem Heißluftballon.
Kamera-Mapping: Bei Kamera-Mapping fungiert eine ausgewählte Kamera als Dia-Projektor, der die entsprechende Textur auf das Objekt projiziert. Dazu muss das entsprechende Kameraobjekt in das Feld „Kamera“ gezogen werden. Wird die Kamera nun bewegt oder gedreht, verändert sich entsprechend auch die Projektion.

  • Seite: Dieses Ausklappmenü bestimmt, auf welcher Seite der Flächennormalen die Textur angezeigt wird. Voreingestellt ist „Beide“ – ideal z.B. für Logos auf Glasobjekten.
  • Kacheln: Deckt eine Bitmap-Textur oder ein 2D-Shader ein Objekt nicht komplett ab, wird seine Struktur voreingestellt wiederholt, also wie eine Bodenfliese gekachelt.
  • Nahtlos: Diese Option setzt Textur-Kacheln an ihren Rändern spiegelbildartig aneinander.
  • Offset U/V: Unabhängig von der Projektionsart (Kugel, Fläche, UVW, etc.) bezeichnet U die Breiten-Information, während V die Höhen-Information darstellt. Bei einer 3D-Textur (z.B. 3D-Marmor) wäre theoretisch auch noch eine W-Koordinate für die Tiefe im Spiel. Bei Veränderung des U / V-Offsets wird der Beginn der Textur entsprechend verschoben.
  • Länge U/V: Analog zu „Offset“ kann die Textur hier entlang U und V skaliert werden.

Hat man seine Textur nun endlich mit der ein oder anderen Projektionsart auf das Objekt aufgebracht, können jedoch weitere Korrekturen an Lage, Rotation oder Skalierung der Textur nötig sein. Die Projektion der Textur auf dem Objekt wird in C4D mit einem sog. Texturkäfig angezeigt. Dabei handelt es sich um ein gelbes Drahtgitter-Modell, welches die gewählte Projektionsart repräsentiert. Dieses wird sichtbar, sobald man bei aktivem Objekt den Textur-Modus in der Werkzeugspalte links in C4D wählt.
Eine automatisierte Anpassung der Projektion auf die Maße des Objektes kann man z.B. durch den Befehl „Tags / Auf Objekt anpassen“ im Menü des Objektmanagers vornehmen. Dieser passt die Skalierung des Texturkäfigs auf die Abmessungen des Objektes an. Variationen des Befehls existieren auch für eine Anpassung auf Textur-Bild-Größe, die Größe eines aufziehbaren Rahmens oder die Anpassung auf diverse Achsen.
Will man den Texturkäfig als Ganzes bewegen, rotieren oder skalieren, ist es der komfortabelste Weg, im Werkzeugmenü zusätzlich den Achsen-Modus zu aktivieren. Dann lässt sich der Texturkäfig entlang der Achsen entsprechend verschieben, drehen oder skalieren. Diese Vorgehensweise gilt prinzipbedingt nicht für UVW-Mapping.
Wie man nun mit all diesem Wissen elegante, überzeugende Texturen kreiert und diese glaubwürdig beleuchtet – damit beschäftigen wir uns ab dem nächsten Artikel in dieser Reihe.

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 ArtikelCinema 4D Release 20!
Ganz frisch hat Maxon C4D R20 angekündigt! Mit dabei sind high-end Features für VFX und Motion Graphics Artists.
Nächster Artikel3D 8K 360 VR AI
Werfen wir doch mal alles in die Überschrift, was diese Kamera so kann...

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.