blender community

The Power of the Blender Community- Artikel in Digital Production 2002

Gleb Alexandrov ist in der Blender Community kein unbeschriebenes Blatt. Der Youtube-Kanal seiner Tutorial-Seite Creative Shrimp hat mehr als 100.000 Abonnenten, und auch auf Facebook und Twitter ist er präsent. Irgendwann stellte er auf Twitter die Frage, ob jemand in Blender den „Krakatoa Look“ für Weltraumnebel erreicht hätte.


Ich war der Meinung, dass ich die Antwort darauf hätte, da ich selbst schon Experimente in die Richtung unternommen hatte und mit Point-Density-Texturen in Cycles das meiner Meinung nach perfekt dafür geeignete Werkzeug parat hätte. Ich stellte also den Kontakt her, zeigte ihm meine Experimente, er zeigte mir seine, und nach einigem Hin und Her hatten wir ein passables Ergebnis und nebenbei noch ein Skript, das in Blender einen Bullet-Time-Effekt mit Bewegungs­unschärfe ermöglicht. Aber es ging noch viel mehr vor sich. Mehr und mehr Mitglieder aus der Blender Community begannen, selbst Weltraumnebel zu erstellen, BLEND-Dateien auszutauschen und die Latte Stück für Stück höher zu legen.

blender community
Splash Nebula – Der Nebel-Render von Gleb Alexandrov, der die Basis für den Splash Screen der Beta-Version von Blender 2.82 bildet.

Blender Conference 2019
Ein paar Monate später hatte ich nicht nur Gleb, sondern auch diversen anderen Nutzern via Twitter bei Nebelschwierigkeiten ausgeholfen und sogar zwei kleine Patches für Blender geschrieben, von denen einer die Limitierung der maximal möglichen Partikel aufhebt und der andere ein spezifisches Problem des Nebelrenderns mit Eevee löst.

blender community
Nebel von Gottfried Hofmann – Ich habe auch ein Beispiel beigetragen. Der Nebel basiert auf verzerrten Point-Density-Texturen, die von einem Partikelsystem gespeist werden, das wiederum von einer Rauchsimulation verwirbelt wurde.

Das ganze Ausmaß der Nebelmanie wurde mir aber erst bewusst, als Gleb auf der Blender Conference (und kurz darauf auf dem ani­ mago) in einer Präsentation darlegte, was in den Monaten davor alles passiert war. Und zwar eine ganze Menge.

blender community
Nebel von Simon Thommes – Dieses Nebelrendering wurde von Simon Thommes erstellt. Von Simon stammen auch die zusätzlichen prozeduralen Texturen, die im Artikel erwähnt werden.

Go Procedural
Gleb hatte beschlossen, dass eine Lösung, die nur auf prozedurale Texturen setzt und damit den Aufwand einer Simulation umgeht, der bessere Ansatz wäre. Denn Simulationen und ihre Caches sind in Blender immer noch ein Garant für Instabilität. Da boten sich das von Simon Thommes erstellte Procedural Noise Pack an. Es ist als CC0 über Gumroad erhältlich (https://gumroad.com/l/NOISE-P) und erweitert Eevee und Cycles um eine Reihe prozeduraler Texturen. Diese erweisen sich als sehr nützlich für die Erzeugung von Nebulae, die sich direkt rendern lassen, ohne vorher eine Simulation laufen zu lassen.

blender community
Rauschen von Simon Thommes – Beispiele für die Möglichkeiten des Procedural Noise Packs von Simon Thommes. Die Node-Gruppen sind als CC0 lizenziert und über Gumroad erhältlich (https://gumroad.com/l/NOISE-P).

Small and Farmable
Dadurch wurde auch die Auswahl an Renderfarmen größer, denn viele Renderfarmen können keine Blender-Simulationen backen und erwarten den gesamten Cache als Upload. Gerade bei Community-Renderfarmen wie Sheep it wird das aber zum Problem, da damit zu jedem einzelnen Rechner Gigabytes an Daten verschickt werden müssten. Daher wurde dort z.B. die maximale Projektgröße auf 500 Mbyte beschränkt, viel zu wenig für eine detaillierte Simulation. Mit rein prozeduralen Texturen hingegen blieb die Datenmenge im Rahmen, und damit war der Weg frei, die Community-Renderfarm Sheep it einzusetzen. Diese funktioniert prinzipiell so, dass man seinen eigenen Computer zum Rendern zur Verfügung stellen kann. Für jeden gerenderten Job erhält man Punkte. Diese kann man einsetzen, um selbst auf der Farm rendern zu können, was Sheep it zu einem typischen Communityprojekt macht.

blender community
Duck Distortion – Frühe R&D-Datei, die aufzeigt, dass prozedurale Verzerrung der UVW-Koordinaten eines volumetrischen Objekts in Blender möglich ist. Lediglich mit der Rauchsimulation ist es noch nicht möglich.

Fraktale
Auch Fraktale wurden ausprobiert, um kosmische Nebel darzustellen. Diese fantastische Form der Mathematik hat Kinogänger aus aller Welt schon in Filmen aus dem Marvel Cinematic Universe wie „Ant-Man“, „Guardians of the Galaxy“ und „Dr. Strange“ bezaubert. Hier halfen Arbeiten von Jonas Dichelle und Robert Schütze weiter, die zeigten, dass sich Fraktale sogar in Eevee halbwegs performant berechnen lassen. Allerdings waren sie nicht wirklich art-directable. Also zurück zu herkömmlichen prozeduralen Texturen.

blender community
Gasriese – Die prozeduralen Nebel lassen sich auch für Renderings von Planeten einsetzen.

Eevee
Die meisten Beiträge aus der Community kamen definitiv beim Thema Eevee. So viele, dass es müßig wäre, die Namen aller Beteiligten aufzuschreiben. Wichtige Impulse kamen von Brent Patterson, der wahrscheinlich die meisten Tests erstellt hat. Andreas Stephens hat eine Möglichkeit entwickelt, mehrere Schichten von volumetrischen Objekten im Compositor zusammenzufügen, um in Eevee immer nur einen Ausschnitt zu rendern. Das klingt jetzt aufwendig, ist aber eine Möglichkeit, die Beschränkungen von Eevee bei der Qualität zu umgehen. Mark Kingsnorth hat sogar einen Generator für Nebel in Eevee als Add-on entwickelt.


Cycles optimiert
Die Ergebnisse in Eevee konnten aber alle­samt nicht mit der Qualität von Cycles mithalten. Letztere Engine hatte aber das Problem, dass sie extrem lange zum Berechnen der Weltraumnebel brauchte. Volumetrisches Rendering ist noch nicht die Stärke von Cycles. Daher begann nun die Optimierungsphase, wobei auch wieder Unterstützung aus der Community kam. Neben zahlreichen Tipps zum allgemeinen Beschleunigen des Renderprozesses und Tests von noch nicht ganz fertigen Denoising-Implementierungen teilte Theory Studios ihren Blender-Build, der einige Optimierungen rund um volumetrisches Rendering mit Cycles enthält. Die Entwickler von E-Cycles, einer kommerziellen Version der Cycles Render Engine mit zahlreichen Optimierungen, fügten sogar eine eigene Nebula-Checkbox hinzu, um die Berechnung von volumetrischen Nebeln in E-Cycles nochmals zu beschleunigen, was je nach Szene bis zu 16-mal schnelleres Rendering erlaubte.


Optical Flow
Um die Renderzeiten weiter reduzieren zu können, wurde das Seitenverhältnis der Renderings angepasst. Das Cinemascope- Format mit 2,35:1 rendert ca. ein Drittel schneller als 16:9. Aber auch das war noch nicht genug. Um nicht jeden einzelnen Frame rendern zu müssen, erstellte Roman Alexandrov, der Bruder von Gleb, ein Tool in OpenCV, das mittels Optical Flow Zwischenbilder generierte, womit nur noch jeder zweite oder dritte Frame gerendert werden musste.

Lehrstück
Die Reise von Gleb durch die Blender Community auf der Suche nach dem perfekten Weltraumnebel kann man als Lehrstück dafür sehen, wie man nicht nur Hilfe bei den eigenen Projekten bekommen, sondern damit sogar zur Entwicklung von Blender beitragen kann. Sicherlich wird nicht jeder bei jedem Problem gleich eine eigens angepasste Render Engine erhalten. Wenn man aber offen an die Community herantritt und keine Angst hat, neben Renderings auch die BLEND-Dateien und sonstige Quellen zu teilen, kann man durchaus etwas zurückbekommen. Mehr dazu im Interview.