Caterpillar 16CM43 – Visualisierung am Limit

Nur ein paar MB vom .fbx-Größenlimit entfernt sollten wir einen 2O.OOO-Pferdestärken-Motor visualisieren. Aber wie bekommt man so ein Riesending in die Pipeline?
Caterpillar 16CM43 – Visualisierung am Limit

Die Firma Caterpillar beauftragte New Communication mit einem Pilotprojekt zur Visualisierung von verschiedenen Motoren mit größtmöglichem Detailgrad. Der Motor / das Pilotprojekt war der 16CM43, ein 16-Zylinder-Schiffsdiesel und Generator mit den imposanten Ausmaßen von 12 m Länge und 5 m Höhe und einer Leistung von ca 20.000 PS. Er wird zum Beispiel zum Erzeugen von Elektrizität in Drittweltländern eingesetzt, wo es kein gut ausgebautes Stromnetz gibt. Das heißt, dass diese Generatoren dort wie Kraftwerke funktionieren. Da ein solches Gen-Set (Generator-Set) erst kürzlich von Caterpillar nach Mali geliefert wurde, war der erste Task das Erstellen von Freistellerbildern für eine Pressemitteilung in fotorealistischer Qualität.
Da die Kernanforderung die Erhaltung sämtlicher baulichen Details beinhaltete, mussten wir uns schon im Vorfeld einen Workflow überlegen, um der riesigen Datenmenge Herr zu werden. Um zu gewährleisten, dass man mit den Daten auch eine Schnittdarstellung erstellen kann, sollten sämtliche Teile erhalten bleiben. Wir setzten hierfür auf einen Mix aus intelligenter Datenverwaltung, nützlichen Softwaretools sowie natürlich unserem Know-how.

Der Arbeitsplatz

Aufgrund von Sicherheitsbestimmungen musste die Datenaufbereitung vor Ort beim Kunden umgesetzt werden – hierfür wurde kundenseitig ein Arbeitsplatz geschaffen. Im Vorfeld wurde mit dem Kunden ein Hard- und Softwarekonzept erarbeitet, mit dem man diese Arbeit auch abseits der Agentur durchführen sollte.

Vorproduktion und Software- / Hardware-Pipeline

Der Datensatz, der von Caterpillar dann geliefert wurde, war wirklich beeindruckend. In Bezug auf Komplexität und Qualität der Daten hatten wir vorher mit nichts dergleichen zu tun – es handelte sich um exportierte Produktionsdaten aus dem CAD-Programm Creo (eine Software, die in der Großindustrie zum Erstellen von Maschinen oder Maschinenkomponenten genutzt wird), die alle baulichen Details beinhaltete – von der kleinsten Schraube bis zum größten Zahnrad war wirklich alles dabei.
Das Softwarekonzept beinhaltete deswegen als ersten Step das Programm Rhino­ceros 3D, was zugleich auch die erste Hürde darstellte. Rhino ist eine Software (auch) für Industriedesign, die hervorragend mit sehr großen Dateien umgehen kann.

Rhino am Werkeln

Die Viewport-Darstellung in Rhino war so langsam, dass man die Datei nur öffnen, aber nicht innerhalb der Datei navigieren konnte. Nach einem 10 Stunden langen Export über Nacht wurde dann erfolgreich eine 3,7 Gbyte große .fbx-Datei geschrieben. Hier ist interessant zu erwähnen, dass das Größenlimit für .fbx im Moment bei 4 Gbyte liegt.

Rhino am Werkeln

Die Bedenken waren groß, ob man solche Datenmengen überhaupt in Cinema 4D öffnen kann, und ich wollte mich schon an die Maxon-Hotline hängen und erfragen, ob dies möglich ist, aber dann war die Datei nach einer kurzen Wartezeit auf.
Leider war auch der Cinema-Viewport nicht in der Lage, das Modell darzustellen. Sicherlich war die enorme Objektmenge ein Grund hierfür.

Der Wire­frame: ganz knapp unter 4 GB

Der Objektmanager in Cinema 4D zeigte eine durchgehende Nummerierung von 0 bis 300.000 an. Der Scrollbalken hatte die kleinstmögliche Größe erreicht. Viele der Objekte waren Teilobjekte einzelner Komponenten, sodass auch z.B. Radien einzeln exportiert wurden.
Und hier ein erster Tipp, was man an dieser Stelle eigentlich immer machen kann:
alle UV-Tags löschen. Die Datei ist dann schon mal um ein Vielfaches kleiner.

Sortierung

Diese mehr als 300.000 Objekte galt es so gut wie möglich zu organisieren. Hierbei war es natürlich an erster Stelle wichtig, die Teile korrekt und vollständig zu ordnen und zu benennen. Ich hatte mich hier für einen simplen, aber effektiven Workflow entschieden und habe immer eine bestimmte Anzahl von Objekten selektiert (5.000 ist die maximale Grenze für zu selektierende Objekte in Cinema 4D) und in ein neues Dokument kopiert.
Hier konnte ich die Teile dann ordnen und zusammenfügen – gleichzeitig diente dieser Schritt auch zur Kontrolle der Daten. Hier zeigte sich auch, dass die Daten eine außergewöhnliche Qualität hatten: Kein einziges Bauteil war kaputt oder hatte Löcher. Jeder, der mit CAD-Daten zu tun hat, weiß, dass das sehr selten der Fall ist.

Octane kann im Live Viewer zwischen den Rendermodi hin- und herschalten. RAM-Verbrauch und Temperatur der Karten sollte man immer im Auge behalten.

Das sehr nette Team von Caterpillar stand jederzeit mit Rat und Tat zur Seite – danke noch mal an dieser Stelle! Auf diese Weise konnte gewährleistet werden, dass alles seine Richtigkeit hatte.

Software

Zum Zeitpunkt der Produktion war das 19er Release von Cinema 4D noch relativ frisch, und ich konnte zum ersten Mal den verbesserten Polygon-Reducer in einem Produktionsumfeld testen. Dieser funktioniert auch mit komplexen CAD-Daten außergewöhnlich gut. Auf diese Weise konnte ich das immer größer werdende Modell gut kontrollieren.

Es wurden von höchst komplexen Teilen (wie zum Beispiel dem Ladeluftkühler) dann immer 2 Modelle als Xref hinterlegt: eine High-Poly-Version für Close-ups und eine Mid-Poly-Version für die Totale. Die Low-Poly-Version habe ich dann händisch noch weiter ausgedünnt und viele Polygone im Inneren gelöscht, das hat auch noch mal ordentlich Speicher gespart.
Weiterhin wurde massivst mit Mograph Clones, Instanzen, Renderinstanzen und Arrays gearbeitet: im Prinzip mit allem, was Cinema 4D zum Auslagern, Organisieren und Verwalten zu bieten hat. Arrays waren zum Beispiel sehr nützlich an Stellen, wo sehr viele Schrauben und Muttern im Kreis angeordnet waren. Mit Mograph Clones habe ich fast alle in Reihe geordneten Motorbestandteile vervielfältigt.

Am Rohrsystem habe ich dann noch schnell ein paar Schweißnähte ergänzt. Dies kann man ganz einfach und schnell mit einem Ringobjekt machen – das Ringobjekt konvertiert man sich dann und kann mittels „Punktwert setzen“ die Funktion „Knittern“ aktivieren. Hierbei sollte man nicht übertreiben, und natürlich könnte man auch mit einer Displacement Map arbeiten, das Ergebnis sieht aus der Totalen betrachtet identisch aus.

Obacht: Hier muss man aber aufpassen, denn Octane rendert keine Clones, die selber schon in einem Cloner liegen und als Renderinstanzen hinterlegt sind. Corona und V-Ray zum Beispiel können dies.
Bei der Verkleidung der Turbolader waren so viele Schrauben, dass ich diese zu einer einzelnen Geometrie zusammengefasst habe. Cinema 4D kann nicht sehr gut mit vielen Objekten arbeiten, deshalb ist dies ein weiterer Weg.

Am Rohrsystem habe ich dann noch schnell ein paar Schweißnähte ergänzt. Dies kann man ganz einfach und schnell mit einem Ringobjekt machen – das Ringobjekt konvertiert man sich dann und kann mittels „Punktwert setzen“ die Funktion „Knittern“ aktivieren. Hierbei sollte man nicht übertreiben, und natürlich könnte man auch mit einer Displacement Map arbeiten, das Ergebnis sieht aus der Totalen betrachtet identisch aus.

Die Datei wurde dann im Verlauf der Produktion immer besser, sodass am Ende der Vorarbeit sogar eine relativ kleine Viewport-Karte den Motor komplett mit allen Bauteilen darstellen konnte.

Renderings

Natürlich wurde nicht nur für die Viewport-Darstellung optimiert, sondern auch für die Render Pipeline. Gerendert werden sollte mit Otoys Octane Render in der damals aktuellsten Version 3.08, und hardwareseitig stand vom Kunden eine Dell-Workstation mit ordentlich Power zur Seite.

Die Renderparameter in den Octane-Settings wirken sich sofort auf den Live Viewer aus.

Nun ist es so, dass man immer an das VRAM-Limit der Grafikkarte gebunden ist, wenn man einen GPU-Renderer benutzt. Das Nadelöhr, wenn man so will, die 11 Gbyte, die die kundenseitig verbaute 1080Ti mitbrachte, sind natürlich eine Ansage, dennoch habe ich ständig die Größe des Projekts kontrolliert, denn ohne die durchgeführten Organisationsmaßnahmen wäre es sonst nicht möglich gewesen, das Projekt mit Octane zu realisieren, und man hätte auf einen CPU-Renderer umsteigen müssen, was wir auf jeden Fall vermeiden wollten.

Caterpillar-Orange im Proof

Die ersten Tests mit der kompletten Geometrie im Live Viewer waren wirklich sehr beeindruckend. Es dauerte zwar, bis die Szene in den RAM geladen war, aber dann hatte man wirklich Echtzeit-Feedback und es konnte direkt noch mal im Rendering überprüft werden, ob alles an seinem richtigen Platz ist.

Zurück in die Praxis

An dieser Stelle ging es dann wieder zurück zur eigentlichen Aufgabenstellung: Für die Pressemitteilung sollten Freisteller-Bilder erzeugt werden, die sich perspektivisch gesehen auch auf andere Motoren übertragen lassen.

Unscheinbar, aber wichtig: die Lackprobe

Zunächst einmal wurde aber noch eine Materialspezifikation erstellt, damit klar war, welches Material zu welchem Bauteil gehört: Stahl, Edelstahl, Aluminium, Stahlguss, Aluguss, Gummi, Plastik, Kupfer, Blech und natürlich der spezifische Caterpillar-Farbton, der später durch einen Proof-Drucker in der Agentur angepasst wurde. Danach wurden in Abstimmung mit dem sehr freundlichen Caterpillar-Team Perspektiven festgelegt. Diese Perspektiven bildeten dann den Ausgangspunkt für die weitere Produktion. Nachdem also Kamerastandpunkt und Materialliste festgelegt wurden, ging es an die Produktion der eigentlichen Bilder.

Texturieren / Rendern

Beim Lichtsetup entschied ich mich für das manuelle Ausleuchten mit Area Lights und einem großen Studiohintergrund, denn mit großen Area Lights bekommt man schöne Verläufe auf den Oberflächen, und einige Bereiche kann man aufhellen, indem man kleine Area Lights setzt.

Für einige Geometrieteile wurde ein Shader erstellt, der Hitzeverfärbungen nachahmen sollte. Diesen Effekt kann man wunderbar mit dem Dirt / Inverse AO erzielen, indem man die AO einfach mit einem Farbverlauf kombiniert.

Eine tolle Funktion ist die Deaktivierung von „Visible on specular“ in den Lichteinstellungen. So kann man wirklich gezielt Bereiche betonen, ohne dass störende Blitze entstehen. Im Vorfeld wurde noch die Option in Betracht gezogen, HDRI Light Studio zu nutzen, was in der Agentur auch oft für andere Projekte genutzt wird. Da aus den Freisteller-Bildern aber auch eine 360-Grad-Animation erzeugt werden sollte, fiel diese Variante raus, weil man die Lichtsetups aus Light Studio nicht für Animationen verwenden kann.

Ein Screenshot des Node Trees

Die Materialien, die erstellt wurden, waren alle relativ basic. Ich versuche aber immer, mit korrekten IOR-Werten zu arbeiten, gerade wenn es um Metalle geht. In der Octane-Version, die gerade aktuell ist, kann man damit sehr schöne Looks erzielen. Zum Zeitpunkt der Produktion gab es dieses Update noch nicht, deshalb habe ich Raphael Raus Ubershader benutzt, mit dem ein sehr ähnliches Ergebnis erzielbar ist.

Ambient Occlusion, Reflection, Diffuse und eine Farbmaske

Zum Rendern wurde Path Tracing benutzt. Sicherlich hätte man auch Direct Light nehmen können, aber die Geschwindigkeit von Octane lässt es zu, eigentlich immer den Path Tracer zu verwenden. Sollten sich im Rendering Hotpixel oder Fireflies bilden, kann man mit GI Clamp etwas gegensteuern. Die Bilder wurden dann alle in ca 9.000 x 4.000 Pixeln mit einigen Multipasses ausgegeben.

Postproduktion

Ein sehr wichtiger Bestandteil der Nachbearbeitung war die Farbkorrektur. Das Team aus Friedrichsort bei Kiel ließ uns eine Lackprobe zukommen, an der wir mithilfe des Agentur-Proof-Druckers die Farben am Bildschirm so weit abstimmen konnten, dass sie der Lackprobe so nah wie möglich kamen.

Wie stark man die Passes einsetzt, ist persönlicher Geschmack und Empfinden, aber auch hier gilt: weniger ist mehr. Für den Schatten wurde eine einfache Ambient Occlusion gerendert. Dafür wurde der Standard-Renderer von Cinema 4D benutzt, da die Occlusion Map dort ein wenig besser aussieht.

Mittels Schwarz-Weiß- und Farbmasken wurden dann selektive Farbkorrekturen in Photoshop durchgeführt. Für die Nachbearbeitung empfiehlt es sich auf jeden Fall mit Multipasses zu arbeiten, man kann damit sehr viel aus dem Bild herausholen, ohne es neu rendern zu müssen.

Gelerntes

Octane kann leider unter bestimmten Umständen keine Renderinstanzen rendern, was CPU-Renderer wie V-Ray und Corona beherrschen – das hat die Organisation des Modells leider ein wenig umständlicher gemacht, da man diese Instanzen an einigen Stellen umgehen musste.

Fazit

Es hat mich immer wieder erstaunt, wie sehr man ein hochkomplexes CAD-Modell optimieren kann, ohne an Qualität zu verlieren. Es dauert zwar seine Zeit, aber am Ende zahlt es sich aus. Und deswegen als Fazit: Keine Angst vor riesigen CAD-Daten, es geht alles!› ei

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.