cycles

Die Cycles Render Engine. Blender, Rhino 3D, Cinema 4D, Poser and Counting- Artikel in Digital Production 1804

Seit der ersten Demonstration der Render Engine Cycles auf der FMX 2O11 hat sich viel getan. Sehr schnell wurde Cycles die Engine der Wahl, um in Blender fotorealistische Bilder und Animationen zu erstellen. Dass die Auswahl auf Blender beschränkt blieb, lag unter anderem an der restriktiven GPL-Lizenz, unter der Cycles damals stand. Diese erlaubte nämlich nur eine Integration in Open-Source-Software. Mit dem Wechsel zur permissiven Apache-2-Lizenz wurde Cycles plötzlich hochgradig interessant für allerlei Firmen. Heute steckt sie in Rhino 6, Poser Pro 11 (als Superfly Engine) und kann als Plug-in für Cinema 4D (unter dem Namen Cycles 4D) gekauft werden. Die Liste ist mit Sicherheit nicht vollständig.

Cycles ist ein sogenannter Path Tracer, ähnlich wie Arnold, Octane und iRay. Dabei werden von der Kamera aus für jeden Pixel Strahlen in die Szene geschickt, die sich annähernd wie Licht verhalten. Da diese von Oberflächen gestreut und reflektiert werden, je nach Material aber auch in Objekte eindringen können und auch vor volumetrischen Effekten wie Feuer und Rauch nicht haltmachen, erhält man so ein annähernd physikalisch korrektes Abbild seiner Szene. Annähernd deshalb, weil nicht unendlich viele Strahlen verschickt werden, sondern irgendwann abgebrochen werden muss. Anfangs ist das Bild daher noch stark verrauscht. Je mehr Strahlen verschickt werden, desto klarer ist aber das Ergebnis. Denoising kann dem Abhilfe schaffen und ist in Cycles ebenfalls verfügbar. Der große Vorteil von Path Tracing gegenüber anderen Methoden wie dem altgedienten Rasterizer ist, dass man viele natürliche Effekte quasi umsonst bekommt, da sie in der Natur des Verfahrens angelegt sind. Dazu gehören Spiegelungen, Refraktionen, indirekte Beleuchtung, Tiefenunschärfe (auch anamorph und mit angepassten Bokeh-Formen) und Bewegungsunschärfe. Allerdings muss je nach Effekt damit gerechnet werden, dass mehr Samples benötigt werden, was sich als längere Renderzeit niederschlägt.

digital production cycles
Wo Licht ist, da ist auch Schatten – Nicht alle Lichtquellen werden auch von den Shadow Rays gefunden. In diesem Beispiel basieren die in den Gläsern gefangenen Irrlichter auf einem volumetrischen Material. Dieses kann von Shadow Rays nicht registriert werden, weshalb hier deutlich mehr Samples notwendig sind, bis das Bild vom Rauschen befreit ist. Erschwerend kommen die Glas-Materialien hinzu, die für Shadow Rays undurchdringbar sind. Diese Szene ist für Cycles also doppelt schwer. Es gäbe allerdings Tricks, um beide Probleme anzugehen. Bild: Point Density Magical FX Pro Edition

Einen weiteren Vorteil kann Path Tracing erst bei sehr großen Szenen ausspielen. Bei relativ geringer Polygonzahl sind Rasterizer weit im Vorteil und können sogar in Echtzeit arbeiten, wie beispielsweise die Unreal Engine. Doch je mehr Geometrie eingesetzt wird, desto mehr verschiebt sich das Verhältnis in Richtung Path Tracing. Das liegt daran, dass bei Rasterizern die Geschwindigkeit linear mit der Anzahl der Polygone zusammenhängt: doppelte Polygonzahl, doppelte Renderzeit. Bei Path Tracern ist das Verhältnis hingegen logarithmisch. Ab einer gewissen Menge hat eine Erhöhung der Polygonzahl quasi keine Auswirkungen mehr.

makehuman normal
makehuman torso

Einfach mal irgendwohin gehen – Der Random-Walk-Algorithmus für Subsurface Scattering zeigt gegenüber dem bisherigen Platzhirsch Christensen-Burley deutliche Unterschiede bei feinen Strukturen.

Rendern auf der CPU und auf der Grafikkarte

Path Tracing hat in den letzten Jahren zunehmend an Bedeutung gewonnen, was nicht zuletzt an der immer leistungsfähigeren Hardware liegt. Denn die zugrunde liegenden Algorithmen sind trivial parallelisierbar und damit relativ gut für die Ausführung auf GPUs geeignet. Und so berechnet Cycles mit zwei im System installierten GPUs gleicher Bauart Bilder auch fast doppelt so schnell und skaliert mit drei oder vier Karten munter weiter.

OpenCL und CUDA

Damit Cycles auf einer möglichst breiten Auswahl an Hardware maximale Performance bieten kann, machen sich die Entwickler ein wenig extra Arbeit und entwickeln die Engine sowohl für CPUs als auch OpenCL und CUDA. Mit Ausnahme der Open Shading Language (OSL, siehe DP 06:13) lassen sich alle Features auf allen genannten Architekturen nutzen. Seit Kurzem ist es sogar möglich, CPUs und GPUs beim Rendern zu kombinieren, was bisher nur über Umwege möglich war. In Blender 2.79 hat dieses Feature leider nicht mehr Einzug halten können, in aktuellen Builds und natürlich in den Preview-Versionen von Blender 2.8 werkeln CPUs und GPUs bereits gemeinsam, sowohl an Standbildern als auch an Animationen.

digital production
Agent 327 ist in den Niederlanden ein bekannter Comic-Charakter. Das Blender Animation Studio in Amsterdam hat eine ca. dreieinhalb Minuten lange Animation erstellt, die als Promo-Material für einen möglichen Langfilm dienen soll. Diese wurde vollständig in Cycles gerendert. Bild: Blender Cloud

Node-basierte Bedienung

Man kann Cycles-Materialien zwar auch in einem gewöhnlichen Editor erstellen, die Node-basierte Variante ist allerdings deutlich intuitiver und mächtiger. Das Node-basierte Bedienkonzept hat inzwischen in unterschiedlichsten Programmen Einzug gehalten und ist vor allem aus der Compositing-Welt nicht mehr wegzudenken. Dank der Nodes werden Neulinge nicht sofort von der großen Menge an Einstellungsmöglichkeiten erschlagen, während fortgeschrittene Nutzer hochkomplexe Materialien erzeugen können bis hin zu eigenen prozeduralen Texturen.

digital production cycles
Knoten – Bei Erstellen von Materialien setzt Cycles auf Nodes. Dabei handelt es sich quasi um eine Form der visuellen Programmierung, die Datenflüsse (von links nach rechts) gut darstellen kann. Im Blender-Jargon werden die Nodes „Nudeln“ genannt wegen Form der Verknüpfungen untereinander.

Moderne Algorithmen

Die Entwickler von Cycles scheinen ein Faible für neue Entwicklungen aus der Computergrafik zu haben. So war Cycles beispielsweise eine der ersten Engines, die Multiscatter GGX als Option für raue, reflektierende Materialien implementierten. Anders als bei den üblichen Modellen leidet Multiscatter GGX nicht an einem Energieverlust bei im flachen Winkel auf eine Oberfläche auftreffendem Licht. Auch Random Walk Subsurface Scattering ist ein solches Beispiel. Erst 2017 auf der Siggraph von Pixar präsentiert, wurde die Methode sehr schnell auch von Arnold adaptiert, da sie gegenüber den bisherigen Ansätzen deutlich realistischere Ergebnisse bietet. Vor allem Modelle mit sowohl dünnen als auch dickeren Elementen profitieren davon. In aktuellen Builds von Cycles ist Random Walk Subsurface Scattering bereits nutzbar, auch die Kollegen von Appleseed setzen inzwischen auf das Verfahren.

 

blender cycles
Milliarden von Polygonen – Szenen mit Milliarden von Polygonen wie diese lassen sich mit Path Tracern besser handhaben als mit Rasterizern, da die Rechenzeit in Relation zur Polygonzahl nur logarithmisch ansteigt.

 

Big Backing

Cycles wird nicht nur von der Blender Foundation vorangetrieben. Inzwischen beteiligen sich auch Studios und Firmen an der Entwicklung. Adidas aus Herzogenaurach hat beispielsweise den Principled Shader (auch bekannt als Disney Shader) beigesteuert. Damit hat nun auch in Cycles ein Über-Shader Einzug gehalten. Das ist ein Shader, der eine Vielzahl von Shadern zu einem Gesamtkonzept vereint. Als Nutzer hat man einen Node, der vermutlich mehr als 90 Prozent der Materialien in einer Szene alleine abdecken kann.

digital production cycles
Käse mit Prinzipien – Der von Adidas implementierte Principled Shader ist auch unter dem Namen Disney Shader bekannt und eignet sich besonders gut für Materialien mit einem glänzenden und einem diffusen oder Subsurface-Scattering-Anteil.

Und selbst wenn man mit Über-Shadern von der Bedienung her wenig anfangen kann (der Node hat allein 18 Parameter und zusätzlich drei Vektor-Eingänge), so ist die Principled BSDF alleine schon deswegen nützlich, weil der Fresnel in der Node physikalisch korrekt auf Mikrofacetten-Ebene berechnet wird.

digital production cycles
Über Shader – Mit der Principled BSDF hat endlich ein Über-Shader in Cycles Einzug gehalten. 18 Parameter und drei zusätzliche Vektor-Eingänge laden zum Experimentieren ein.

Die drei Studios Barnstorm Visual FX, Theory Studios und Tangent Animation haben bereits zur Entwicklung beigetragen. Ein Beispiel ist der Denoiser, der in Blender seit Version 2.79 verfügbar ist und der maßgeblich von Barnstorm und Theory Studios finanziert wurde. Der Denoiser ist ein Nachbearbeitungsschritt, der das Rauschen im Rendering unterdrückt. Ab einer gewissen Menge an Samples liefert er durchaus plausible Ergebnisse. Derzeit ist er aber nur für Standbilder offiziell freigegeben. Man kann ihn zwar auch bei Animationen einsetzen, dann kann es aber zu Artefakten kommen. Mit genug Samples ist er aber durchaus auch für Bewegtbilder zu gebrauchen. Eine Version mit Animationssupport ist für die Zukunft geplant.

digital production cycles
Rauschen? Welches Rauschen? Der Denoiser erzeugt aus einem verrauschten Bild ein geglättetes, wobei Details erhalten bleiben. Dadurch reichen weniger Samples für ein sauberes Ergebnis, was Renderzeit spart. Bild: The Pixelary/ Mike Pan

Fazit

Cycles hat sich seit der ersten Vorstellung im Jahr 2011 ganz schön gemausert. Die Engine wird kontinuierlich weiter gepflegt, und seit die Lizenz auch eine Integration in proprietäre Software erlaubt, scheint sich die Entwicklung sogar noch zu beschleunigen. Die zunehmende Unterstützung auf Studio-Seite tut ihr weiteres. Spannend bleibt die Frage, für welche Programme in Zukunft Plug-ins erscheinen werden.

 

Dieser Artikel erschien im Magazin Digital Production, Ausgabe 1804. Herunterladen können Sie ihn hier als PDF.


Related Items: