PBR-fähige Texturen aus der Cloud

Physically Based Shading aus dem Browser – BrainDistrict macht es möglich! Der Softwareentwickler BrainDistrict GmbH aus Köln bietet eine Software namens Material-Z an. Ein Physically-Based-Materialeditor, der einerseits im Webbrowser genutzt werden darf, aber auch als Download-Installer verfügbar ist, damit am Computer ohne Internetverbindung gearbeitet werden kann. Als Basis dient dem Materialeditor Disneys Principled Shader. Die erstellten Materialien lassen sich über Exportfunktionen plattformübergreifend nutzen. Eins lässt sich mit Sicherheit sagen: Der Newcomer hat es in sich!

Der Markt an Applikationen für die professionelle Erstellung von Materialien und Texturen wird derzeit dominiert von Produkten wie Substance Designer vom französischen Softwareentwickler Allegorithmic oder der Quixel Suite der schwedischen Quixel AB. Daneben bieten unterschiedliche Renderer native PBR-Materialeditoren an. Zu all den Lösungen gesellt sich nun ein Softwareentwickler aus Köln namens BrainDistrict GmbH und bietet einen prozeduralen PBR-Materialeditor im Webbrowser inklusive eigener Cloud.

Klein aber fein – Material-Z

Bei Material-Z handelt es sich in erster Linie um eine sehr junge Software, die gerade in der Entfaltungsphase steckt, aber mit einem soliden Satz an Features ausgestattet ist. Als Basis dient dem Materialeditor das Konzept des Disney Principled Shaders. Es gibt zwei Möglichkeiten, die Software selbst zu nutzen. Eine davon nutzt den Webbrowser.
Über die Homepage material-z.com wird man direkt in den Materialeditor katapultiert. Daraufhin erscheint ein Launch-Fenster, das den Zugriff auf Beispielmaterialien, Tutorials und das Forum möglich macht. Andererseits gelangt man unter anderem über Symbole rechts oben im Launcher zum Download-Installer, der heruntergeladen werden kann. Ganz gleich welcher Weg gewählt wird, schließt man den Launcher, dann erblickt man die Benutzeroberfläche.
Der Aufbau des Materialeditors ist schlicht und ermöglicht Neuankömmlingen gleichermaßen wie alten Hasen einen schnellen Start in das Programm. Mittig in der Benutzeroberfläche befindet sich ein groß angelegter Graph, in dem die Nodes platziert sowie organisiert werden können. Links daneben gibt es ein Vorschaufenster für Materialien sowie Texturen, darunter eine Sammlung sogenannter Sources, und rechts am Bildschirmrand sind Parametereinstellungen möglich sowie die Auswahl bestimmter Modi wie zum Beispiel das Zeichnen von Texturen. Unterhalb des Graphen gibt es ein Code-Fenster, um den OpenGL-Code einzusehen und zu bearbeiten. Wahlweise lässt sich der Code der jeweiligen Source nebst visueller Vorschau als Splitscreen einstellen.

Der Aufbau eines Materials erfolgt visuell durch das Anordnen von Funktionen in Kacheln.
Der Aufbau eines Materials erfolgt visuell durch das Anordnen von Funktionen in Kacheln.

Der generelle Aufbau von Materialien unterliegt einem relativ einfachen Prinzip. Es gibt Material Nodes, deren Attribute durch anderweitige Objekte modelliert beziehungsweise modifiziert werden. Nur ist die Terminologie der entscheidende Punkt. Als erstes Nodes: Es gibt drei unterschiedliche Typen von Nodes. Einmal die Material Nodes, die sich um die Verarbeitung der Attribute auf Materialebene kümmern. Daneben gibt es Utility Nodes. Diese Art von Nodes kümmert sich um die Lösung eines bestimmten Problems beziehungsweise errechnet bestimmte Werte, und es gibt Material Mixer Nodes zur Verbindung von zwei oder mehreren Materialien. Die ersten beiden Node-Typen lassen sich über Buttons oberhalb des Graphen erstellen, der Material Mixer hingegen muss über das Source-Fenster links unten eingebracht werden.
Material Nodes dienen quasi als übergeordnete Container mit leerem Bauch, der gefüllt werden kann. Die Füllung des Bauches geschieht durch die Anwendung beziehungsweise Kombination von Sources – Quellen.

Das Konzept der Quelle

Eine Source ist im Grunde nichts weiter als ein kleines Stück GLSL-Code, das in Form eines kleinen Blocks mit visueller Vorschau in Nodes eingebracht werden kann, wie die filigranen Zahnräder innerhalb eines Uhrgehäuses.
Die Positionierung der Sources innerhalb von Nodes findet nicht in voller Freiheit statt, wie man es von bereits verfügbaren Materialeditoren gewohnt ist. Vielmehr sind Nodes mit einer Reihe von leeren Kacheln ausgestattet – Material Nodes in der Summe neun. Per Drag-and-drop lassen sich Sources aus deren Fenster auf eine leere Kachel bewegen.

Der Code des bestehenden Materials basiert auf GLSL und kann somit portiert werden.
Der Code des bestehenden Materials basiert auf GLSL und kann somit portiert werden.

Standardmäßig sind neun Kategorien im Source-Fenster vorhanden, aus denen die kleinen Bausteine herausgenommen werden können. Wurde ein Baustein innerhalb eines Material Nodes platziert und doppelt geklickt, dann erscheint unter dem Graphen der jeweilige GLSL-Code nebst einer visuellen Vorschau. Der Code lässt sich variabel anpassen, falls Programmierkenntnisse vorhanden sind, sowie direkt kompilieren.
Daraufhin lässt sich eine Kopie des Codes in der eigenen Cloud als Source speichern oder direkt mit der Community teilen. Beide Möglichkeiten besitzen ihre eigenen Funktionstasten.
Die Kölner haben einen Schritt weiter gedacht und bauen auf das Prinzip des Teilens innerhalb einer Community, die zeitgleich mit Material-Z aufgebaut wird. Beides wächst kontinuierlich miteinander, gemäß dem Sprichwort: Gut Ding braucht Weile. Um das Prinzip miterleben zu können, wird ein Account mit aktiver Subscription benötigt – einer aktiven Mitgliedschaft.
Ja, die Kölner orientieren sich an dem Mietmodell, das derzeit bei vielen Konzernen und KMUs Einzug hält. Wobei man sagen darf, dass zwanzig Euro verteilt auf ein Jahr nicht die Welt sind im Bereich der professionellen Medienproduktionen.

Durch schwarz gekennzeichnete Outputs können die Ergebnisse entweder in den Material Builder oder eine Ebene unterhalb als Input angefügt werden.
Durch schwarz gekennzeichnete Outputs können die Ergebnisse entweder in den Material Builder oder eine Ebene unterhalb als Input angefügt werden.

Wahlweise gibt es ebenfalls die Möglichkeit, eine Einmalzahlung vorzunehmen. Für MacOS gibt es die Möglichkeit, die Software über den Apple App Store zu erwerben. Laut der offiziellen Homepage soll zeitnah im Windows App Store ebenfalls eine Einmalzahlung möglich sein. Immerhin bekommt man eine Software ohne störende Informationsfenster à la WinRAR, und für Austausch und Speicherung von Materialien wird eigener Cloud Space bereitgestellt.
Möchte man nun einen Material Node füllen, dann erfolgt die Zusammensetzung durch Sources in Ebenen. Jeweils drei horizontal angeordnete leere Kacheln bilden eine Ebene. Ein Material Node besitzt standardmäßig drei Ebenen.
Der Datenfluss ist von rechts nach links und findet meist über Terminals statt. Terminals beschreiben Ein- und Ausgänge. Ein weißes Terminal ist der Eingang, während ein schwarzes Terminal für einen Ausgang steht. Die erste Kachel, die direkt neben den Attributeingängen links sitzt, eröffnet Terminals. Die Sources rechts daneben arbeiten in einem Flow.
Die Werte der verfügbaren Attribute, ganz gleich ob Source oder Material, lassen sich rechts im Properties-Fenster modifizieren. Utility Nodes, die als separate Nodes neben den Material Nodes verfügbar sind, haben eine Ebene, und Material Mixer Nodes – zu finden bei den Sources – bilden große Materialbäume. Hat man sich all das bewusst gemacht, dann kann mit der Modellierung der Attribute beginnen.

Von einfach bis komplex

Mit Material-Z lassen sich blanke Materialien relativ zügig erstellen. Einerseits gibt es für Metalle Presets, andererseits orientiert sich die Software am Disney-Principled-Shader-Konzept und bietet über einen leere Material Node dementsprechend eine Reihe an vordefinierten Parametern für die Anpassung über das Properties-Fenster an. Anwender dürfen über Schieberegler, deren Werte von 0 bis 1 reichen, Einstellungen und Farbeinstellungen für den Albedo-Bereich vornehmen.

Das Verfahren Material Blending ist ebenfalls möglich.
Das Verfahren Material Blending ist ebenfalls möglich.

Jedes dieser Attribute kann mittels Sources modifiziert werden. Ebenso darf zwischen Displacement und Bump Mapping gewählt werden. Überzeugend ist die Auswahl der Sources. Die getestete Version besaß insgesamt neun Kategorien an Sources, mit denen sich durchaus komplexe Materialien aufbauen ließen.
Die ersten drei Kategorien, die es zu untersuchen galt, nannten sich fBm, Noise und Pattern. In der Kategorie Noise ist eine Vielzahl an Implementierungen unterschiedlicher Rauschmuster hinterlegt. Angefangen von Perlin-Rauschen über Cell bis hin zu Voronoi-Mustern sind die gängigsten Muster vorhanden. Bei Bedarf lassen sich neue Muster über GLSL-Code hinzufügen, aber für einen Start ist die Auswahl wohlüberlegt. Ebenso, dass die Sources mit Kürzeln ausgestattet sind, um zu signalisieren, in welchem Raum (2D/3D) sie funktionieren und ob sie wiederholbar sind.

Über das Textur-Export-Dialogfenster lassen sich gängige Einstellungen inklusive Format auswählen.
Über das Textur-Export-Dialogfenster lassen sich gängige Einstellungen inklusive Format auswählen.

Hinter der Kategorie namens Pattern verbergen sich zahlreiche Muster-Generatoren. An dieser Stelle schlägt das Herz eines Shading Artists höher, da eine breite Masse an unterschiedlichen Mustern abgedeckt wird. Es gibt das klassische Schachbrettmuster. Daneben sind Muster verfügbar für Holzmaserung, Risse, zahlreiche Steinmuster, ebenso zirkuläre, unterschiedliche Muster für Böden, Wände und Decken. Dazu kommen noch Muster für eine Reihe an Stoffen – Fabrics – wie Wolle, und teilweise sind Muster mit unterschiedlichen Ebenen ausgestattet, um einfache Variation zu ermöglichen.
Eine weitere Kategorie nennt sich fBm – Fractal Brownian Motions. Dahinter verbergen sich Muster, die benötigt werden, um Rauschgeneratoren eine natürliche Turbulenz hinzuzufügen. Bei Material-Z sind knapp zwei Handvoll fBms für den Einsatz verfügbar. Als Input muss nur ein bestimmtes Rauschen genutzt werden, und in Windeseile lassen sich Materialeffekte erzeugen.
Darin gibt es ebenfalls fBms zur Generierung von Terrain-Formationen, um Landschaften darzustellen. In Verbindung mit dem Displacement beziehungsweise Bump Slots lassen sich Materialien optisch aufwerten, gerade wenn es um die Darstellung von rauen Oberflächen geht.
Wie es sich für einen guten Materialeditor gehört, gibt es auch bei Material-Z eine Kategorie namens Operator, die gefüllt ist mit mathematischen Funktionen, um komplexe Materialien aufzubauen. In Verbindung mit den Sources der Kategorie Material Mixer – der zuvor erwähnte dritte Material-Node-Typ – lassen sich Material Nodes miteinander verbinden. Das Verhältnis der jeweiligen Mischung lässt sich somit durch die Operatoren in Verbindung mit Utility Nodes modellieren. Das zugrunde liegende Prinzip ist als Material Layering bekannt und wird in allen gängigen Applikationen genutzt.

Praktische Anwendung

Um Rich-Feature-Materialien in Material-Z zu erstellen, muss man sich den Aufbau der Sources bewusst machen. Standardmäßig hat ein Material Node drei Ebenen mit jeweils drei Source-Plätzen. Nun ist aus der Praxis bekannt, dass Node-Netzwerke für Materialien schnell große Dimensionen annehmen können. In Material-Z muss für weitere Ebenen eine Source in den dunklen Bereich direkt unterhalb der letzten Ebene gezogen werden. Direkt bildet sich eine weitere Ebene.
Wichtig ist das Verständnis der Verarbeitung. Die erste leere Kachel direkt neben den Attributen des Material Nodes besitzt mindestens ein Terminal – in der Regel einen Output. Die erste Source gibt deren Ergebnisse weiter an die zweite Kachel rechts nebenan. Dort werden weitere Ergebnisse produziert, die eine Kachel weiter nach rechts fließen. Nun ist das Ende der Ebene gekommen. Die Besonderheit ist, dass die Ergebnisse der Ebene nun in die erste Kachel links der neuen Ebene geführt und dort weiterverarbeitet werden. Ein Prozess, der automatisch stattfindet, auch wenn die letzte Kachel einer Ebene leer ist. Anstatt Nodes über eine bestimmte Fläche verteilt zu sehen, sind bei Material-Z die Nodes fein säuberlich in übereinander gestapelten Ebenen abgelegt.

Mit einem einzigen Material Node lassen sich durchaus komplexe Materialien aufbauen, gerade in Verbindung mit den Transform Sources: Funktionen, die auf den UV-Space einwirken und eine Transformation erzeugen abseits von simplem Tiling. Vielmehr lassen sich Warp- und Displacement-Effekte auf prozedurale Muster anwenden, um Materialien mehr Charakter zu verleihen.
Um dem Ganzen noch das symbolische Sahnehäubchen aufzusetzen und weitere Details nebst Variation beizusteuern, können Material Nodes miteinander verbunden werden. Es gibt vier unterschiedliche Mixer Nodes. Von standardmäßigen Mischern über Masken gibt es auch die Möglichkeit, Materialien basierend auf der Bump- beziehungsweise Displacement-Höhe zu mixen. Ein Verfahren, das es relativ einfach macht, Füllmaterialien mit Hauptmaterialien basierend auf Mustern optisch hervorzuheben.
Des Weiteren gibt es noch System Nodes, die sich einbinden lassen, um zum Beispiel Terrain basierend auf der Ausrichtung der Normalen einzufärben, ähnlich wie man es von Terragen, Vue oder von den Data Channel Modifiern aus 3ds Max gewohnt ist.
Ein Punkt muss für die professionelle Materialerstellung noch angemerkt werden. Es lässt sich ein Utility Node erstellen, der als eigenständiger Node neben dem Material Node aufgeführt wird. Möchte man diesen Utility Node aktiv in ein Material einbinden, dann gibt es hierfür eine separate Utility Source, die die Einbindung von außen möglich macht. So lassen sich unterschiedliche Logikbausteine aufbauen und je nach Bedarf einbinden.
Spannend ist ebenfalls der Mixer namens UV Position. Beschrieben wird die Source damit, dass unterschiedliche Materialien für einen Vergleich gleichzeitig nebeneinander gerendert werden können. Trägt man den Node nun in eine professionelle Medienproduktion, so lässt sich zügig ein Textur-Atlas erstellen, der von anderweitigen Renderern oder WebGL/Three.js-Applikationen ausgelesen werden kann. An dieser Stelle kommt der Export ins Spiel.

Über den Viewer lassen sich nicht nur die entstandenen Texturen anzeigen, vielmehr kann man diese auch direkt exportieren.
Über den Viewer lassen sich nicht nur die entstandenen Texturen anzeigen, vielmehr kann man diese auch direkt exportieren.

Der Export ist eine ebenfalls gute Möglichkeit, die zuvor erstellten Texturen für anderweitige Applikationen zu exportieren. Oftmals ist es so, dass Programme wie 3ds Max, Maya, Cinema 4D und weitere mit eigenen Renderern ausgestattet sind, die ebenfalls eine Reihe an Material Nodes beinhalten. Doch wenn spezielle Muster benötigt werden, dann können die über Material-Z erstellt und exportiert werden. Exportieren lassen sich entweder die Texturen oder die Sources selbst, wobei mit Source der Code gemeint ist. Über den Export lassen sich die Texturen sogar in Googles WebP-Format exportieren.

Fazit: Auf sehr gutem Wege

Was muss man wissen, wenn es um Material-Z geht? In erster Linie handelt es sich um ein junges Projekt, einen Materialeditor auf OpenGL-Basis mit der Möglichkeit, ein ideales Nischenprodukt für die Erstellung von Materialien für WebGL-Anwendungen sowie Texturen für PBR-Materialien anderer Applikationen zu werden. Entwickler und Künstler erhalten eine relativ einfach zu verstehende Oberfläche, mit der Möglichkeit, durch ausgewählte, prozedural arbeitende Generatoren auf die Schnelle Texturen zu erzeugen. Spannender ist jedoch die Ausgabe, Einsicht und Modifizierung des dazugehörigen Codes. Spannend gerade für Freiberufler und Agenturen, die Online-Produktkonfiguratoren mit schönen Materialien schmücken möchten und auf visuelle Unterstützung bei der Erstellung
angewiesen sind.
Um sich Arbeit und dementsprechend Zeit zu sparen, darf man auf GLSL-Code-Fragmente oder Material Nodes innerhalb der Cloud zugreifen und da modifizieren. Mit ein wenig Fingerspitzengefühl und technischer Finesse lassen sich mittels GLSL auch Path Tracer realisieren.
Tief in die Tasche greifen muss man dafür nicht. Für den durchaus geringen Preis von 20 Euro pro Jahr eine Erleichterung für Freiberufler und Agenturen.
Ein wichtiger Punkt ist, dass die Software noch jung ist und sich – hoffentlich – weiterentwickelt. Es bleibt daher spannend, welche Features kommen werden und wie sich die Ausrichtung des Produkts verändert, wenn die Community wächst und zum Wachstum der Software beiträgt.
Falls vorab ein Blick in die Software geworfen werden möchte, die Browser-Version sowie der Download-Installer erlauben die Erstellung von Materialien sowie den Export, es muss sich nur damit angefreundet werden, dass keine Cloud-Anbindung vorhanden ist und in periodischen Abständen Fenster aufgehen, die für zehn Sekunden den Arbeitsfluss stören, während nach einer Subscription gefragt wird. Alles in allem zeigt die Software Potenzial, und das Schnuppern in Material-Z ist empfehlenswert. Weitere Informationen gibt es unter:
www.braindistrict.com.

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.