Heute mal noch ein bisschen was für die Compositing Interessierten unter euch:
Nachdem ja in der Vergangenheit immer mal wieder hier im Forum auch Diskussionen über Mode-basiertes Compositing vorgekommen sind und ich ja auch mal drüber nachgedacht habe eine kleine Übersicht zu geben, habe ich gedacht nutz ich doch mal den kleinen Augenblick heute Abend um das auch mal zu tun. Ein Tutorial soll es nicht sein, sondern eher mal ein Einblick in den (Compositing-technischen) Arbeitsprozess eines VFX Shots, und vielleicht hat ja der ein oder andere der sich bislang nicht so richtig an Nodes rangetraut hat dadurch ein wenig mehr Einblick wie sich so ein (zugegebenermaßen von aussen immer erst komplex wirkender) Node-Baum aufbaut.
Als Beispiel habe ich mir eine noch vergleichsweise überschaubares Shot ausgesucht, das rein aus CG Elementen besteht. Für eine Übersicht nicht verkehrt da man ja erstmal Prinzipbedingt die volle Kontrolle über jedes Element hat und die grundlegenden Prinzipien daran sicher leichter nachzuvollziehen sind, zumal der Baum recht linear von oben nach unten verläuft – bei Shots mit Plates und dadurch auch immer ner Menge Keys und Rotomasken, gibt es da immer ein deutliches Mehr an Verzweigungen, die sich nicht so schnell erschliessen und vermutlich anhand eines Videos deutlich besser dargelegt sind. Ausserdem nehmen die recht schnell ein vielfaches des hier gezeigten Ausmaßes an.
Auf den ersten Blick mag alles verwirrend erscheinen, also sollte man sich ein bisschen Zeit nehmen. Ansonsten den Post einfach ignorieren
Für den Anfang also erstmal ein nummeriertes Bild mit bebilderten Zwischenschritten.
Nachvollziehen lässt sich das Ganze übrigens nicht nur in Nuke, sondern auch genauso in Fusion, und, mit Abstrichen, auch noch dem guten alten Shake (ach ja manchmal vermisst man es…
).
Sollte Interesse bestehen werde ich sicherlich mal zu dem ein oder anderen Shot eine detailliertere Video Übersicht nachlegen, über die üblichen Breakdown fürs Making Of hinaus.
Also, los gehts. Am besten habt ihr den Text in nem Tab neben dem Bild auf. Das Bild ist groß, also hoff ich dass euer Scrollrad funktioniert und ihr euch nach ein paar Sekunden zurechtfindet. Ich denke gegenüber einem Video hat man so zumindest die Möglichkeit, sich in Ruhe selbst mit allem auseinanderzusetzen. Ganz oben findet ihr einen Strip mit 5 Frames aus dem fertigen Shot. Darunter links oben eine kleine Voransicht des Baums. Dann gehts bei (1) los…
Extern:
Und als Mirror hier im Board:
————————————————————————
Kurz zum Shot: Das gezeigte Raumschiff feuert zwei Raketen in dem Shot ab. Während die erste den Frame verlässt schwenkt die Kamera mit der Zweiten mit und wir schwenken mit ihr rüber zu ihrem Ziel, einem Planeten in der Ferne.
Also beginnen wir: (1) ist unser erster Input, das Rendering des Raumschiffes (160 Frames sind es), als Floating Point OpenEXR, d. h. High Dynamic Range – für diejenigen unter euch, die das ganze eher in Kameradepartment-Begriffen bezeichnen: Eine Menge Blendenstufen im Ausgangsmaterial. Wir haben also Overbrights ohne Clamping, und können uns Farbtechnisch austoben wie wir wollen ohne groß Banding zu riskieren. CG Footage hat den Vorteil dabei eigentlich so ziemlich uneingeschränkt zu sein, wenn wir mit Plates arbeiten sind wir beschränkt durch das Ausgangsmaterial, also im besten Fall die verfügbaren Blendenstufen im RAW. Der Arbeitsprozess mit Plates ist sowieso ein bisschen anders, da alles was im Compositing zur Plate dazukommt üblicherweise recht direkt an die Plate angeglichen wird, als dass die Plate angerührt wird. Grundsätzlich wird die Plate sowieso nie verändert, es sei denn es wäre zwingen notwendig. Was natürlich vorkommt, je nachdem wieviel CG dazukommt.
(1) ist der komplette Raumschiff-Layer inklusive Beleuchtung und Schatten der Raketen, allerdings mit den Missiles selbst ausgeblendet.
(2) ist der Input der beiden Raketen, separat gerendert um sie als einzelnen Element im Compositing zu haben.
(3) Ist der Ausstoß aus den beiden Startschächten. Der eigentlich 3d Render ist relativ simpel, allerdings wird er sowieso stark verändert werden für das gewünschte Ergebnis, daneben sichtbar. Ich habe beide Ausstösse der Einfachheit halber in einem gerendert, und einfach mit Rotomasken separiert. Auch wenn sich das Feuer als Grundlage eignet, gibt es draussen im Vakuum natürlich kein tatsächliches Feuer. Sich ausbreitenden Gase, und sich schnell verflüchtigende Wolken dagegen schon, also wollen wir eher in diese Richtung. Weiter unten wird das Element nochmal in 3 unterschiedliche Elemente durch Kontrastveränderungen aufgesplittet für etwas mehr Kontrolle über den Look.
(4) Ist ein kleiner Utility Layer, nämlich der Schatten des Raketen-Austosses, den ich seperat gerendert habe, da der tatsächliche Schatten der 3d Elemente deutlich zu scharfkantig wäre. Das Rendering an sich ist zugegebenermaßen völligst hässlich, ist aber auch wurscht. Übrig bleibt nach Korrektur nur eine kleines Maske für den diffusen Schatten den wir mit unserem Ausgangmaterial multiplizieren können.
(5) ist zusätzlich noch eine kleine Partikelwolke aus den Startröhren ausgestossener Gase.
Bis runter zu (6) werden all diese Elemente durch Merge-Nodes zusammengeführt, danach folgt eine Reihe Farbkorrekturen, die hauptsächlich das Raumschiff von einem eher grünlichen Eindruck Richtung goldbraun bewegen. Dazukommen diverse kleine optische Effekte wie ein wenig Blooming/Glint einzelner Lichter.
Dazu kommt nun (7) der eigentlich Austoss des Treibwerks – auch hier wieder eher sich schnell verflüchtigendes, glühendes Gas als tatsächliches Feuer. Aber auch hierfür ist Feuer ein nicht verkehrter Ausgangpunkt, also ist das unser nächster gerenderte Layer den wir dem ganzen Mix hinzufügen. Diesmal aufgesplittet in 4 Renderings, 2 Layer pro Rakete.
Durch diverse Grades, Blurs und mixen all dieser entsteht dann der Schlussendliche Look, zu sehen in im Bild „Exhaust Graded“.
Richtig rund wird der Ganze Raketenstart dann durch ein paar optische Effekte, sprich Flares, die in (8) generiert werden. Eingang ist der Ausstosse der Raketenschächte, also (3) Über diverse Blurs und Glint Effekte ensteht ein sternförmiges Blooming. Das Bild zeigt den Effekt in voller Stärke – hinzugemixt wird er nur sehr sehr abgedämpft. Wie mit allen optischen Effekten wie Flares (und gerade Flares) sollte man dann doch eher sparsam umgehen. Jede reale Optik hat ein paar „Makel“ die für uns ein Bild erst filmisch wirken lassen, allerdings sollte man auch aufpassen nicht alles unnatürlich mit Blooms vollzuklatschen.
In (9) nun kommt einer weiter CG Layer dazu – eine weitere Partikelwolke. Diesmal ein wenig „Glitter“, Eis-Partikel die durch die Vibration des Raketenstarts von Aussenhülle und Schacht losgetrieben werden und durch den Raum gleiten. Auch diese werden ziemlich abgeschwächt, da sie eher subtil und auf die Distanz kaum wahrnehmbar zum Ganzen beitragen.
in (10) nun das Endresultate alle dieser Elemente per Merges über unser Raumschiff gelayert. An der Stelle sei dazugesagt, dass ich hier die Vorschaubilder ein wenig in ihrer Helligkeit angehoben habe damit man auch etwas erkennt.
In (11) nun bewegen wir uns mal auf die gegenüberliegende Seite des Compositing-Trees. Was wir hier haben ist Nukes 3D Compositing Umgebung, sprich ein vollwertiger 3d Raum, der natürlich auch mit komplexer Geometrie klarkommt. Hier verwenden wir allerdings für dieses Shot nur ein paar gundlegende Geometrietypen (Kugeln und Flächen) um unseren Hintergrund zu erzeugen. Auf eine die Szene umgebende Kugel wird ein Hintergrund projiziert (Milchstraßen Mattepainting), während Nebel und Planet in der Distanz auf Flächen gemappt werden. Der Nebel ist Foto-Mattepainting, der Planet ein 8K Rendering des betreffenden Planeten, also streng genommen ein 3d Renderlayer, wir verwenden ihn aber nur als statisches Bild. Er wird auch so immer wieder verwendet in anderen Shots, bis auf eine Distanz wo sich eine echte geometrische Kugel und ein tatsächliches 3D-Element sich wieder anbieten. Die Kamera der Szene ist dabei die aus Maya importierte Shot-Kamera, von der aus auch Rakete, Raumschiff und alles andere gerendert wurden. So haben wir in Nuke die selbe 3 dimensionale Umgebung wie in unserem 3D-Tool.
Gerendert werden 3 Layer (Sternenhintergrund + Nebel), der Planet und ein kleiner Utility-Layer: Eine Fläche mit Radialem Verlauf, die mehr oder minder nur einem nachträglichen Abdunkeln der Sterne um den überstrahlenden Planeten dient. Die Elemente werden zusammengefügt und das Ergebnis ist (12).
Der Grund weswegen wir hier zu Nukes 3D Umgebung greifen ist ganz einfach der, dass Nukes Scanline Renderer solch simple Szenen weitaus schneller und effizienter rendert als jeder Raytracer. Ausserdem haben wir volle, interaktive Kontrolle über den Look unserer Umgebung direkt in der Compositing Umgebung, anstelle auf ein 3D-Rendering warten zu müssen. Wann auch immer es sich anbietet 3D im Compositing zu lösen, sollte man also auch zu der Möglichkeit greifen.
in (13) nun kommen beide Elemente zusammen: Raumschiff+Raketen+Triebwerkeffekte per Merge über unseren generierten Hintergrund gelegt.
Im Grunde genommen ist unsere Szene hier fertig was ihre grundlegenden Elemente angeht. Aber natürlich gehört noch einiges mehr dazu das Shot wirklich abzurunden.
Während wir mit Rakete Nummer Zwei beim Start hochschwenken gerät vor allem die Sonne ins Blickfeld, was nunmal passiert wenn man im Gegenlicht „arbeitet“. Ausserdem macht es den Beginn einer Actionsequenz durchaus interessant ein paar unruhige Elemente im Bild zu haben wie Flares und eine bewegte Kamera. Grundsätzlich ist der Weltraum eh ziemlich langweilig – alles dauert unendlich lange, alles ist unendlich weit weg. Während die Raumschiffe sich zwar interessant bewegen können, können sie das kaum so interessant wie meinetwegen Flugzeuge (ausser Tie-Fighter die können das aus irgendeinem weit entfernten Grund vor langer langer Zeit…). Gegenwirken können wir dem vor allem mit der Eigenbewegung der Kamera (die tatsächlich in den meisten Space-Shows den Großteil der Dynamik eines Shots ausmacht) und dem Licht.
Während wir also hochschwenken kommt die Sonne und damit deren Flare ins Blickfeld – dazu noch einige unscharfe Flecken auf der Kameralinse, Stilmittel um den Weltraum ein bisschen kühler und unwirklicher zu gestalten. Ob man im Weltraum mit dreckigen Linsen arbeiten würde? Man weiss es nicht – anderseits hat das RAW Material mit dem wir hier filmen wohl auch genügend Blendenstufen um die Sterne wieder rauszuholen, die man eigentlich garnicht sehen würde. Aber das kauft dann der Zuschauer nicht, und irgendwie fehlt dem Bild auch was, wenn es nur schwarz gibt. Allerdings sollte man es mit Sternen auch nicht übertreiben. Daher wird deren Helligkeit auch animiert, sodass sie durchaus wegfaden wenn es ne helle Lichtquelle im Bild gibt. Nungut (14) also ist nochmal ein Satz „Optics“. Eben jener „Lens-Dirt“ und das Flare an sich. Dessen Position wird dynamisch gesteuert über einen Punkt im 3d Raum, den wir aus unserer 3D-Szene abgereifen (Die grüne Linie die unser schönes Nuke-Script durchkreuzt signalisiert den Link).
Weiter zu (15), Flare wird auf alles andere addiert.
(16) nun ist unsere mehr oder minder unsere finale Color Correction.
Allerdings muss man an der Stelle bedenken, dass dieses mit eines der ersten Nodes war die überhaupt existiert haben. Ähnlich einer Look-Up-Table hab ich wie bei jedem Shot üblich mir eigentlich jeden Arbeits-Schritt mit dieser Farbvariante angeschaut (und wenn ne LUT existieren würde für so ein Shot würde man die auch benutzen, gerade wenn man mit ner Log-Plate oder anderem erstmal fürs menschliche Auge visuell unschönem Kram arbeitet, oder für sein Shot ne Grading-LUT bekommt um zu checken wie es nach Grading wohl ankommen wird). Daher kann es auch mal vorkommen das Up-Stream im Baum durchaus Dinge sind die einem auf den ersten Blick Farbtechnisch befremdlich oder zu hell oder zu dunkel erscheinen – die bekommt aber auch nie jemand zu Gesicht.
Ohne Look-Up sehen auch an eine Log-Plate angepasst Elemente im Viewer ziemlich daneben aus
Grundsätzlich ist es oft so, dass Compositing Bäume eher so entstehen dass man einen Ausgang hat, Eingänge, und alle erstmal per Merges „übereinander-layert“ und dann beginnt „dazwischen“ zu arbeiten. Bei Greenscreen-Plates oft ähnlich. Man startet zwar oft mit seiner Minimalanzahl von 3 Keyern, aber oft legt man dann den (erstmal völlig beschissen aussehenden, immer!) Key über seine backplate oder zumindest ne Preview-Backplate. Dann gehts ans Finetuning – und schnell wächst der Baum zwischen oben und unten. Dass man straight von oben nach unten arbeitet kommt selten vor. Setzt auch vorraus das man im Vorhinein exakt weiss was man in jedem Arbeitsschritt genau vorhat, und das ist nunmal mitnichten der Fall. Da kann man so viel Erfahrung haben wie man will – jedes Shot ist neu, und natürlich funktionieren alt bewährte Setups immer wieder aber die Nachkommastellen die etwas von „mäh“ zu „yeah“ machen, muss man sich auch erstmal angeschaut haben
Ab (17) kommen dann noch Kleinigkeiten hinzu, wie beispielsweise Chromatische Abberation (hier in simpler Ausführung generiert, Möglichkeiten gibt es wie Sand am Meer), all das was ein Shot erst lebendig werden lässt.
(18) Nun ist ein letzter Satz sehr subtiler Flares, hauptsächlich für den Raketenstart. Ein paar Radiale Verläufe mit sehr minimaler Deckkraft, animiert über Expressions für ein wenig Flackern und Flimmern um etwas Unruhe zu erzeugen während die ausgestossenen Gase vor sich her flimmern.
In (19) nun endlich geht das finale Shot raus mit nem Write Node, in dem Fall hier als .dpx Sequenz da es soweit mehr oder minder dem Endergebnis entspricht, sodass im Grading nichtmehr allzuviel passiert. DPX Sequenzen buffern in Resolve einen Tacken schneller als exr, das ist an der Stelle aber auch der einzige Grund warum dpx. Normalerweise kämen an der Stelle (wenn nicht für einzelnen Elemente spezifisch) noch Filmgrain und ähnliche Effekte hinzu. Da das Shot aber Full CG ist und im Grading sowieso noch zurecht-genüsselt wird, kommt dass dann im Grading anstelle direkt in der Comp.
Ich hoffe der ein oder andere hat somit eine klarere Vorstellung davon wie sich ein solches Shot zusammensetzt. Die grundlegenden Prinzipien werden sicherlich klar, wenn man versucht den „Fluss“ der Daten nachzuvollziehen – wie gesagt, ich würde an der Stelle auch nichts erreichen jetzt den Zweck eines jeden Nodes zu erklären, die erschliessen sich dann beim Arbeiten. Aber vielleicht raubt es ein bisschen die „Angst“ vor der Unüberschaubarkeit von Node-Bäumen die ich hier im Forum oft rausgehört habe
Dazu sei gesagt dass ich in einer tatsächlichen Produktionsumgebung sicherlich einige Nodes reduzieren würde – gerade einige Grade Nodes die sich noch zu einem zusammenfassen lassen. Grundsätzlich hätte ich bei den 3D-Elementen auch mehr Passes (Reflection, Specular, Shadow) mehr gerendert, allerdings war das hier weniger nötig da das Ziel eigentlich auch von Anfang an recht klar vor Augen war. Allerdings macht es immer Sinn ein paar mehr Passes zur Verfügung zu haben, und grundsätzlich kriegt ihr die ja auch ohne Rendertime-Aufpreis und komfortabel in einer EXR geschrieben. Grundsätzlich lässt sich das Ganze auch 1 zu 1 auf das Arbeiten mit Real-Footage übertragen. Und falls da Interesse bestehe sollte, kann ich mir da auch mal in Zukunft n Shot rausgreifen wenn die Post weiter fortgeschritten ist. Hängt natürlich davon ab ob hier überhaupt Nachfrage danach besteht