Windowlicker – Ein Tribut an Aphex Twin und Chris Cunningham

Vor 15 Jahren schrieb Chris Cunningham mit seiner Interpretation zu dem Track „Windowlicker“ von Aphex Twin Geschichte in der Welt der Musikvideos. Die grotesken Visagen der Protagonisten, allesamt Konterfeis des Musikers selbst, haben sich bis heute vielen Betrachtern ins Gedächtnis gebrannt. Den Höhepunkt stellt eine besonders übertriebene Fratze dar, die zum Ende des Clips in Erscheinung tritt.

Unser Ziel war es, diesen Charakter so getreu und detailliert wie möglich wiederzugeben, obwohl das Referenzmaterial sehr rar ausfiel. Daher mussten wir mit Screenshots aus dem Video sowie einer Handvoll Schnappschüssen vom Dreh auskommen. Für weitere Referenzen zur Pose und zu anatomischen Details haben wir ein eigenes Fotomodell unter diesen Vorgaben abgelichtet und uns aus dem umfangreichen Bildarchiv von 3D.SK bedient. Unser Tribut an das Windowlicker-Video schien uns ein geeignetes Projekt, um insbesondere die neue C4D-Integration von Solid Angles Arnold Renderer ausgiebig zu testen. C4DtoA (Cinema 4D to Arnold) ist 2012 aus einem Hobbyprojekt entstanden. Damals war es mir ein persönliches Anliegen, diese Engine auch in Cinema 4D (C4D) nutzen zu können. Ein befreundeter Entwickler begann mit der Programmierung und inzwischen hat Solid Angle die Entwicklung komplett übernommen.

Design Sculpt und Grundformen

Als Basis für den Kopf haben wir als Erstes eine Designstudie in ZBrush erstellt. Ausgehend von einer PolySphere und mithilfe von Dynamesh galt es, die grundlegenden Proportionen und das Volumen des Kopfes auf Basis unserer Referenzen zu erarbeiten. Beim Sculpting-Prozess wurde erst einmal symmetrisch gearbeitet, um uns schneller an die gewünschten Proportionen herantasten zu können und beim Retopologisieren nicht mit einem asymmetrischen Mesh arbeiten zu müssen. Nachdem der Kopf in seiner Grundform zu unserer Zufriedenheit fertiggestellt war, wurde er im nächsten Schritt in 3D Coat retopologisiert und mit einem UV-Layout versehen. Diese Basis-Topology haben wir nun in ZBrush importiert und ausreichend unterteilt, um dann per „Reproject All“-Befehl die Details des Design Sculpts auf das neue Mesh zu übertragen. Projection-Errors in den Problemzonen (üblicherweise bei den Unterschneidungen wie zum Beispiel hinter den Ohren oder in den Mund- oder Augenwinkeln) haben wir maskiert und separat projiziert oder manuell korrigiert. Hiermit war die Basis für die Ausarbeitung der Likeness und des Ausdrucks vorbereitet.

Tipp: Die meisten Projection-Errors lassen sich gut mit dem Smoothbrush egalisieren, wenn man diesen an den Spitzen derselbigen ansetzt und sie so wieder auf die eigentliche Oberfl äche zurückglättet. Meist empfi ehlt es sich, diesen Prozess auf einem niedrigeren SubD-Level zu starten, da sich die Projection-Errors auf dem höchsten SubD-Level oft nicht effektiv glätten lassen. Man ist aber dennoch gezwungen, diesen Schritt auf den höheren SubD-Levels entsprechend zu wiederholen, weil sich Überreste der Fehler meist bis ins Detail durchziehen.

Ausarbeitung der Likeness und Detailing

Bevor wir uns daranmachten, die Likeness und Details des Kopfes in ZBrush zu verfeinern, importierten wir ein erstes Proxymesh davon in C4D, um hier schon einmal die Ausrichtung des Kopfes und der Kameraperspektive an unsere Referenz anzupassen. Ein erster Lightmatch per HDR Light Studio half dabei, den resultierenden Schattenwurf als zusätzliche Referenz für die Ausarbeitung der Primär- und Sekundärvolumen des Kopfes zu nutzen. Diese angepasste Version importierten wir wiederum in ZBrush, um unser Werkstück dort ebenfalls an die gewünschte Pose anzupassen. Nun passten wir in mehreren Iterationen unser bis jetzt symmetrisches Basemesh an den Look unserer Referenz an. Um diesen Prozess zu erleichtern, hatten wir im Vorfeld noch das Referenzbild in ZBrush importiert und auf das Floorgrid gelegt.

Tipp: In der Draw-Palette lässt sich diese Textur auf die Frontplane legen und mit den vorgesehenen Slidern für Offset, Rotation und Scaling optimal platzieren. Im Fillmode 3 lässt sich die Transparenz der Geometrie und der Imageplane mithilfe des Enhance Factor und der Enhance Opacity balancieren. Hier empfi ehlt es sich, unbedingt in ZBrush ein ZProject zu speichern, da die Imageplane und ihre Ausrichtung im ZTool-Format nicht erhalten bleiben.

Zudem setzten wir in der ZBrush Timeline einen Keyframe für die perspektivische Ansicht, der die bestmögliche Annäherung an unsere Kameraperspektive in C4D defi – nierte. Zur Anpassung und Ausarbeitung der Likeness wurden primär der StandardBrush, Claybrush, Movebrush sowie der DamStandardBrush und der RugasBooster Brush verwendet.

Nach jeder weiteren Sculpting-Iteration exportierten wir den aktuellen Stand des Kopfes in C4D, um dort Testrenderings vorzunehmen und mithilfe der besser definierten Kameraposition und des Schattenwurfs Erkenntnisse über die noch notwendigen Anpassungen zu erlangen.
Nachdem die Likeness ausreichend definiert war, begannen wir mit der Ausarbeitung der Highfrequency-Details. Wir bedienten uns dazu zusätzlicher Referenzen von 3D.SK, da das Referenzmaterial aus dem Videoclip Preview: Fortgeschrittene Studie des symmetrischen Basemesh mit Stand-in-Elementen zur besseren Beurteilung von Dimensionen und Proportionen aufgrund mangelnder Aufl ösung nicht viele Erkenntnisse über die feineren Strukturen des Gesichts zuließ. Jeder einzelne Detailing Pass wurde in ZBrush in der Layer-Palette auf einem separaten Sculpting Layer platziert, um diese im Nachhinein per Layer Intensity optimal aufeinander abstimmen zu können.

Des Weiteren lässt sich so auch die Grundform noch problemlos anpassen und vor allem auch glätten, ohne dass man die Information der Highfrequency-Details verliert. Selbstverständlich ist es sinnvoll, wenn man die Highfrequency-Detail-Layer während dieser Nachbearbeitung ausschaltet. Hierbei sollte man beachten, keine der Korrekturen an der grundlegenden Form auf den Layers vorzunehmen, die die HF-Details beinhalten. Für die Erstellung der eigentlichen Details haben wir nur wenige Texture-Alphas mit dem Dragrect Stroke verwendet, sondern eher auf Straystrokes mit einem runden Alpha (wie Alpha 36) sowie einem crosshatch Alpha (etwa Alpha 56) invertiert und einige Custom-Alphas für die grundlegenden Strukturen gesetzt. Der primäre Faltenwurf der Haut wurde vor allem mit dem Dam- StandardBrush sowie dem RugasBooster Brush manuell erstellt. Zum Abschluss haben wir noch eine Art Bumpmap mit Microdisplacement- Details in Photoshop erstellt, welche wir in ZBrush per Mask by Intensity in Kombination mit Infl ate in eine weitere Sculpting-Ebene übertragen haben.

Basemesh & Sculpting

Zur Erstellung des Körpers haben wir ein bereits geriggtes weibliches Basemesh verwendet, um uns in C4D erst einmal an die Handarbeit: Selbst feinste Poren und Hautfältchen ließen sich mithilfe der hochaufl ösenden gewünschte Pose anzunähern. Dieses wurde im Vorfeld in ZBrush in einer symmetrischen Pose grundlegend angepasst. Nachdem die Pose ausreichend deckungsgleich mit unserer Referenz war, importierten wir die Geometrie in ZBrush und verfeinerten sie dort weiter. Wie beim Kopf fand dieser Prozess in mehreren Iterationen statt, um mithilfe des Lightmatches ein möglichst passgenaues Resultat zu erzielen.
Auch hier haben wir uns mit zusätzlichen Referenzen befasst (3D.SK, Fotoshooting), um die genauen anatomischen Sachverhalte der Pose besser durchdringen zu können. Die verwendeten Sculpting Brushes sind natürlich die üblichen Verdächtigen, die auch schon zur Ausarbeitung des Kopfes verwendet wurden.

Haare & Fuzz

Die ersten Tests zum Generieren der Haare via Fibermesh direkt in ZBrush führten leider nicht zum gewünschten Ergebnis. Die unterschiedlichen Haarstrukturen, von der Kopfhaut zusammengespannt, über die gewobenen Zöpfe hin zu den offenen Zopfenden stellten eine besondere Herausforderung dar.
Für die flexible Gestaltung der Frisur, insbesondere der Zöpfe und einzelnen Strähnen, wählten wir daher einen Umweg über Maya. Das Geo Maya Hair 2 Script von Thunder Cloud Studio bot uns die Freiheit, die Proxy geometrien der einzelnen Haarelemente in ZBrush zu generieren und komfortabel anzupassen, um sie individuell in Maya mit PaintFX Hair zu füllen. Anschließend wurden die PFX-Haarobjekte in Curves gewandelt und als FBX in C4D übertragen. Die so importierten Splines ließen sich zu nativen C4D-Haarobjekten konvertieren.
Die Barthaare bestehen aus nativem Cinema 4D Hair, was eine direkte Editierung ermöglichte. Alle Deformationen des Haarmaterials konnten akkurat durch das Arnold-Render-Tag für Curves übersetzt werden. Die zusätzliche Körperbehaarung, sogenannter „Fuzz“, wurde als Fibermeshes in ZBrush erzeugt. Auf dem Gesicht bedurfte es allerdings vorher des Groomings einer angepassten Maske, um die realistische Varianz von Länge und Dichte der Härchen zu erhalten. Ein Export dieser Fibermeshes als Curves im OBJ-Format kann nicht direkt in C4D importiert werden. Das Plugin Riptide Pro von Skinprops war nötig, um diese Limitation zu umgehen.
Beim Detailing des Körpers wurden im Großen und Ganzen dieselben Techniken wie bei der Ausarbeitung des Kopfes angewandt. Auch hier arbeiteten wir wieder auf einzelnen Layern, um die nötige Flexibilität zu erhalten und verwendeten die bekannten Brushes. Speziell bei den Händen waren allerdings die zusätzlichen Alphas, die wir aus dem Material der Surface Mimic Library (www.surfacemimic.com) generiert haben, extrem hilfreich, um einen möglichst realistischen Look zu erzeugen.

Kleidung & Accessoires

Der Bikini wurde größtenteils in ZBrush ge sculptet. Speziell die IMM Curve Brushes waren hier für die Nähte und die Schnüre des Bikinis hilfreich. Für die Nähte modellierten wir eine loopbare Geometrie mit zwei individuellen Endstücken in C4D, aus der in ZBrush mehrere Curvebrushes erstellt wurden. Nach der Anpassung an den Körper exportierten wir die Geometrie der Schnüre und Nähte auf dem niedrigsten SubD-Level und wiesen ihnen in C4D UVs zu, um die geplante Mikrostruktur des Stoffs optimal platzieren und kacheln zu können. Danach konnte diese UVMap durch Reimport in ZBrush übernommen werden. Das Basemesh für das eigentliche Textil des Bikinis wurde in ZBrush via Meshextract von der Körpergeometrie erzeugt. Zur Erarbeitung der Faltenwürfe, Stoffl ichkeit und Spannung über den Körper zogen wir erneut unsere Fotoreferenzen zu Rate. Die Halskette und der Armreif wurden auf einem ähnlichen Weg, ebenfalls mithilfe von Curvebrushes, erstellt. Nachdem wir die Blumen aus unserer Vorlage als eine Unterart der Cosmos Aster identifi ziert hatten, konnten wir ein biologisch korrektes Basemesh dieser speziellen Blume online erwerben. Allerdings war eine weitere Ausarbeitung der feinen Details und Texturen notwendig, um das Blumengesteck qualitativ an das restliche Modell anzugleichen. Um einen möglichst realistischen Look zu erreichen, wurde jede Blüte individuell an die Referenz angepasst und positioniert.

Texturing

Um der hohen Auflösung des geplanten 4KRenderings gerecht zu werden, mussten auch die Texturen in einer entsprechenden Größe angelegt werden. Bei Kopf und Körper haben wir uns daher für 8K-Maps entschieden. Für Zähne, Zahnfleisch und Blumen erwies sich eine 4K-Map als ausreichend.
Um die Qualität der Texturen weiter zu erhöhen, wurden sogenannte Crosspolarized Fotos live von einem Modell aufgenommen. Vorteile ergeben sich dabei aus einer flexiblen Beleuchtung in der gewünschten Pose und den reinen Diffuse-Informationen im Bild, die sich quasi ohne Specular abheben. Das erspart die Nachbearbeitung und Retusche von Glanzlichtern und Reflexionen in Photoshop. Die grundlegende Basis für die Colormaps bildeten ein ZBrush Polypaint sowie ausgewählte Bereiche der Textur-Fotos, die via Spotlight in den Polypaint integriert wurden.
Weitere Anpassungen wurden in Photoshop vorgenommen, wie zum Beispiel die Multiplikation einer Cavity Map, um den Kontrast der Details zu erhöhen, sowie selektive Farbkorrekturen, um das Zusammenspiel von Diffuse Map und Subsurface Scattering optimal zu balancieren.

Lightmatching

Im Verlauf des Sculpting-Prozesses wurde jeweils das aktuellste ZBrush- Modell in C4D geladen, um die Kameraperspektive sowie die Lichtsituation nachzustellen und, wie bereits erwähnt, Schattenwürfe abzugleichen. Hierfür fand das neue C4D-Live-Plug-in von Lightmaps HDRLightStudio Verwendung. Anhand der Licht- und Schattenverhältnisse im Referenzbild konnte in Echtzeit eine entsprechende HDRMap erstellt werden. Um die Plastizität noch besser hervorzuheben, wurden neben dem Hauptlicht zusätzliche Lichtakzente in der HDRMap platziert.

Shading

Die Shader-Auswahl in Arnold für C4D beinhaltet zwar bereits den Standard- sowie den Skinshader. Allerdings bestand damals noch keine optimale Möglichkeit, diese zu mischen oder über Ebenen mit Masken zu verblenden. Eine gute Alternative stellte hier eine Auswahl frei verfügbarer Shadersammlungen für Arnold dar (https://bitbucket. org/anderslanglands /alshaders/ wiki/Home). Da unser Prototyp des C4DtoA-Plug-ins bereits Thirdparty-Plug-ins/-Shader nativ unterstützte, konnte für sämtliche Objekte in der Szene das alShaderpack von Anders Langlands genutzt werden. Hier bot sich der alSurface-Shader besonders für das realistische Skinshading mit drei Subsurface- Scattering-Layern an. Wichtig hierbei waren die physikalisch-realistischen Dimensionen des Modells. Um den SSS-Effekt für die Haut entsprechend zu balancieren, wurde eine Weight Map erzeugt und die Tiefen der einzelnen SSS-Layer (Radien) wurden einzeln angepasst. Für die Haare, die Blumen und den Schmuck kamen sowohl der alSurface- als auch der alHair-Shader zum Einsatz. Eigene Shader für das Mischen oder Blenden, prozedurale Noise und Patternshader sowie Farb(raum)korrekturen, ebenfalls Bestandteil der alShaders, vereinfachten den Workfl ow zusätzlich. Da in C4DtoA jeder Shader als ein eigenes Material dargestellt wird, konnte zum Beispiel dieselbe Noise oder derselbe Layershader in anderen Surface-Shadern diversen Feldern gleichzeitig zugewiesen werden. Dadurch entstand bereits das fl exible Gefühl eines Node-basierten Ansatzes. Besonders der interaktive Rendermode von Arnold (IPR) erleichterte und beschleunigte die Shader- Gestaltung enorm. Ist die Szene erst einmal vorgecached, können einzelne Parameter modifi ziert werden, woraufhin sich das Preview im IPR quasi in Echtzeit aktualisiert und die Änderungen wiedergibt.

windowlicker8

Rendering

Solid Angles Arnold ist ein bemerkenswerter Renderer. Er bietet eine ausgezeichnete Qualität bei extrem optimierter Performance.
Dabei ist er relativ leicht zu bedienen, was nicht zuletzt zu seiner großen Verbreitung und Beliebtheit auch in jüngster Zeit beitragen dürfte. Im finalen Rendering zeigt Arnold seine Stärken. Mit mehr als 90 Millionen Polygonen, 500.000 Haaren und einem Dutzend 8K-Texture-Maps benötigt Arnold selbst nur etwa 8 GB Arbeitsspeicher. In knapp 2 Minuten sind die Vorberechnungen und der Export durch C4D abgeschlossen und das Preview beginnt sich von groben Prepasses zur finalen Qualität schrittweise aufzulösen.
Der finale Beauty Pass wurde lediglich im Photoshop farbkorrigiert, um dem Video- Look der Referenz noch akkurater zu entsprechen.
Das gesamte Projekt ist über einen Zeitraum von sechs Monaten entstanden, der effektive Aufwand lässt sich auf etwa sechs Wochen beziffern.

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.