USD (Universal Scene Description) ist ein von Pixar entwickeltes Dateiformat für den Austausch von 3D-Computergrafikszenen zwischen verschiedenen Anwendungen zur Erstellung digitaler Inhalte. Es handelt sich um ein erweiterbares Open-Source-Dateiformat, das Informationen über 3D-Geometrie, Shading, Beleuchtung, Physik und andere grafikbezogene Bereiche speichern kann. Es kann auch Daten aus verschiedenen Quellen zusammenführen und überschreiben, wodurch ein einzelner Szenengraph entsteht, der nicht-destruktiv bearbeitet werden kann.
USD wird in vielen Branchen wie Design, Architektur, Animation und Gaming eingesetzt und von vielen Softwareanwendungen wie Blender, Cinema 4D, Houdini, Maya und Apples SceneKit unterstützt. USD ist auch der Kern von Pixars 3D-Grafikpipeline und die Grundlage von Nvidias Omniverse-Plattform.
Die Universal Scene Description (USD) Spezifikation verwendet verschiedene Dateiformate:
- .usd – Kann entweder ASCII- oder binärkodiert sein
- .usda – ASCII-kodiert
- .usdc – Binärkodiert
- .usdz – Eine Paketdatei, die als Nullkomprimierungs-, unverschlüsseltes ZIP-Archiv formatiert ist. Kann .usd-, .usda-, .usdc-, .png-, .jpeg-, .m4a-, .mp3- und .wav-Dateien enthalten.
Blender (oder jede andere 3D-Software) macht Ihnen das Leben leicht, indem es Ihnen ermöglicht, viele Aufgaben nur über seine Benutzeroberfläche zu erledigen. Sobald Sie jedoch anfangen, andere Software in Ihre Pipeline einzuführen, tauchen Probleme wie aus dem Nichts auf. Sprechen wir also über die größten Probleme, auf die Sie wahrscheinlich schon heute stoßen, und wie Pixar die Lösung geschaffen hat, um diese bis in die Unendlichkeit zu überwinden.
Das Problem
Wenn Sie jemals ein Modell in Substance texturiert, Ihre Arbeit in Unreal importiert oder versucht haben, ein Projekt mit jemandem zu teilen, der in einer anderen Software arbeitet, haben Sie wahrscheinlich festgestellt, wie ärgerlich das sein kann. Sich mit verschiedenen Dateitypen und den richtigen Export-Workflows für jede einzelne Software herumschlagen zu müssen und dabei wertvolle Daten zu verlieren, kann einem das Gefühl geben, mit dem Kopf gegen die Wand zu rennen.
Und glauben Sie mir, wenn ich sage, dass dies etwas ist, das alle 3D-Künstler überall erleben – egal, ob Sie als Solo-Künstler mit Ihrer eigenen benutzerdefinierten Pipeline arbeiten oder in einem großen Studio wie Pixar, wo Sie sich an strenge Pipeline-Beschränkungen halten müssen, um einen reibungslosen Workflow für alle anderen 1.232 Mitarbeiter aufrechtzuerhalten. Das Problem bleibt dasselbe.
Warum das passiert
Es ist aber doch logisch, oder? Jede Software verwendet einen proprietären Dateityp, der für ihre Bedürfnisse geeignet ist. Eine Datei von Blender zum Beispiel ist so codiert, dass sie in Blender funktioniert, aber nicht in Substance. In einem Unternehmen benötigt jeder Künstler eine Datei, die mit seinem eigenen Werkzeug kompatibel ist, um die Arbeit an einem Projekt zu erleichtern und manchmal überhaupt erst zu ermöglichen.
Aus diesem Grund ist der Export in einen universelleren Dateityp wie FBX oder OBJ ein Muss, wenn man zu einer anderen Software wechselt oder sein Projekt an die nächste Person übergibt. Aber selbst diese Dateitypen haben viele Einschränkungen, wie z. B. die Unfähigkeit, Simulationen, Beleuchtung und viele andere Aspekte Ihrer Blender-Projekte richtig zu speichern.
Wir stellen vor: USD
Was ist also die Antwort auf dieses Problem? Universal Scene Description (USD), kurz gesagt! USD wurde erstmals 2016 von Pixar als Open-Source-Software für die eigene Kernpipeline veröffentlicht und war hauptsächlich eine Möglichkeit für die Künstler, den Datenaustausch untereinander und mit den von ihnen verwendeten Werkzeugen zu erleichtern.
Seit seiner Veröffentlichung wird USD ständig verändert und verbessert, was für Open-Source-Software wie Blender üblich ist, die ebenfalls ständig aktualisiert und erweitert wird.
Was ist USD?
USD ist vieles, und wenn ich wirklich tief eintauche, kann es sogar sehr technisch und kompliziert zu beschreiben sein. Aber einfach ausgedrückt: USD ist eine Möglichkeit, Apps wie Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse und viele mehr dazu zu bringen, miteinander zu kommunizieren und sich gegenseitig zu verstehen.
Innerhalb der Computerindustrie gibt es tatsächlich ein schickes Wort dafür – Interoperabilität. Ziemlich schwer auszusprechen! Aber so schick das auch klingt, es ist eigentlich gar nicht so kompliziert, wie man vielleicht denkt. Sie können noch heute anfangen, es auf Ihrem eigenen Computer oder sogar mit mehreren Freunden oder Kollegen auf der ganzen Welt zu verwenden.
Wie sich USD unterscheidet
Traditionell ist eine Pipeline eine sehr einseitige Sache, bei der jede Person nur dann an etwas arbeiten kann, wenn die vorherige Person fertig ist. Oder für Sie persönlich können Sie erst dann zum nächsten Schritt im Prozess, wie z. B. der Texturierung, übergehen, wenn die Modellierung vollständig abgeschlossen ist.
Man könnte dies mit dem Backen eines Kuchens vergleichen: Während Sie diesen Kuchen bauen und kreieren, müssen Sie jeden Schritt abschließen, bevor Sie mit dem nächsten beginnen können. Sie können den Kuchen nicht backen, bevor Sie den Teig verrührt haben, und Sie können ihn nicht bauen, bevor Sie die Kuchen im Ofen gebacken haben. Jeder Schritt ist davon abhängig, dass der vorherige abgeschlossen ist.
Noch wichtiger ist, dass es kein Zurück mehr gibt, sobald Sie das Frosting und die Füllung aufgetragen oder entschieden haben, dass der Biskuit Schokolade sein soll. Sie können den Kuchen nicht mehr zurückbacken, den Geschmack in Vanille ändern oder das Frosting abnehmen. Und das nennen wir einen destruktiven Workflow.
USD ist jedoch eher wie Legos. Jeder Block stellt einen Teil einer 3D-Szene dar – Charaktere, Objekte, Umgebungen, was auch immer – und Sie können diese Blöcke unabhängig voneinander zusammenbauen, auseinandernehmen und modifizieren.
In einer traditionellen Pipeline würde die Änderung eines Blocks bedeuten, dass der Rest der Struktur angepasst werden muss. Aber mit USD kann an jedem Baustein unabhängig gearbeitet werden, und ich kann einfach einen Block in eine andere Farbe ändern, ohne das gesamte Modell neu erstellen zu müssen.
Es ist ein nicht-destruktiver Ansatz, der Experimente und kollaborative Workflows ermöglicht, ohne durch Pipeline-Beschränkungen behindert zu werden.
Das Ziel von USD
Das Ziel von USD ist es, eine Möglichkeit zu schaffen, Daten frei zwischen Anwendungen zu bewegen, um Künstlern und Teams die Freiheit zu geben, sich auf die Erstellung zu konzentrieren und nicht auf den Export und das Warten aufeinander, um weiterarbeiten zu können. Künstler sollten nicht von vorne anfangen müssen, wenn das Konzeptteam beschließt, später noch etwas zu ändern. Und es sollte keine Probleme mit Dateiformaten geben, die aus anderen Programmen kommen und in Ihrer bevorzugten Software nicht funktionieren.
Auf Serviceebene scheint USD genau das zu sein – ein hochgradig interoperables Dateiformat, das leicht zwischen verschiedenen Softwareanwendungen ausgetauscht werden kann. Und fairerweise muss man sagen, dass dies für die meisten Blender-Benutzer der Fall sein wird, da viele von uns dazu neigen, alleine zu arbeiten. Aber USD ist mehr als nur ein Dateityp …
Es ist eine Möglichkeit, eine beliebige Anzahl von Assets zu virtuellen Sets, Szenen, Aufnahmen und Welten zusammenzufügen und zu organisieren – und sie von Anwendung zu Anwendung zu verwenden und sie oft in Echtzeit nicht-destruktiv zu bearbeiten.
So arbeiten Sie mit USD
Schauen wir uns also an, wie wir mit USD in einem Blender-Workflow arbeiten können. In seiner einfachsten Form ist USD seit Version 3.6 eine Exportoption in Blender. Wenn Sie also eine Datei haben, an der Sie arbeiten und die Sie als USD-Datei speichern möchten, können Sie zu Datei > Exportieren > Universal Scene Description gehen, woraufhin ein Fenster angezeigt wird, in dem Sie die Datei speichern können.
Es gibt eine ganze Reihe von Optionen, aber die wichtigsten sind:
- Nur Auswahl – Nimmt nur ausgewählte Objekte in Ihren Export auf
- Animation und Haar – Schließt Animations- und Haarpartikeldaten für Ihre Objekte ein/aus
Hier ist ein tolles Beispiel dafür, wie USD funktioniert. Dies ist eine Datei aus Nvidias USD-Beispielbibliothek, die in einer Reihe von Softwareanwendungen wie 3ds Max und Substance erstellt wurde. Wenn Sie diese in Blender öffnen, indem Sie sie importieren, funktioniert sie fast zu 100 % sofort!
Wie Sie sehen können, enthält sie alle Daten, einschließlich Lichter, Tiefenschärfe, die Kamera, Materialien und vieles mehr. Das Einzige, was nicht richtig exportiert wird, ist die HDRI-Beleuchtung, die wir selbst einrichten müssen. Aber es ist unglaublich, dass dies im Arnold-Renderer von 3DS Max fast identisch aussieht und einfach in Blender exportiert wurde und mit einem einzigen Dateityp genauso gut funktioniert!
Es hat die richtige Hierarchie, Materialien und im Grunde ist alles eingerichtet. Es ist wirklich, wirklich cool! Wie auch immer, das zeigt, wie USD zwischen verschiedenen Anwendungen funktioniert und dass es als interoperables Dateiformat fungiert.
Ein praktisches USD-Beispiel
Werfen wir aber einen Blick auf ein praktischeres Beispiel. Für dieses Pipeline-Beispiel verwende ich einen typischen Workflow, bei dem Blender verwendet wird, um ein Objekt für ein Spiel zu modellieren.
Die traditionelle Pipeline würde in etwa so aussehen:
- Modell in Blender erstellen
- UV-Modell entpacken
- Als FBX exportieren, da Painter keine Blender-Dateien verwenden kann
- FBX in Substance Painter importieren
- Materialien in Substance hinzufügen
- Texturen als Bilder exportieren
- FBX in die Game Engine importieren
- Texturen manuell einrichten
- Renderings erstellen
Mit USD können wir diesen Prozess erheblich vereinfachen und einen weitgehend nicht-destruktiven Workflow beibehalten. Die Pipeline bleibt sehr ähnlich, wobei Blender und Substance die Hauptkomponenten sind.
Da USD jedoch nicht nativ in Echtzeit zwischen diesen Apps funktioniert (hauptsächlich, weil Blender immer noch nur eingeschränkte USD-Unterstützung bietet), verwende ich Nvidia Omniverse, um diese Verbindung für uns herzustellen.
Über Omniverse erhalte ich Zugriff auf einen USD-kompatibleren Zweig von Blender, der von Nvidia entwickelt wurde. Ich kann den Omniverse-Connector für Substance Painter aktivieren, um den LifeLink zu realisieren. Und ich kann USD Composer verwenden, um die Lücke zwischen den Apps zu schließen und das Endprodukt anzuzeigen.
Mit dieser Einrichtung können wir nun unser Blender-Projekt im benutzerdefinierten Blender-Zweig öffnen. Wenn wir dann N drücken und hier auf die rechte Seite gehen, erhalten wir das Nucleus-Add-on, mit dem wir dies als USD-Datei exportieren können.
Wenn wir dann zu USD Composer gehen und diese USD-Datei öffnen, erhalten wir eine Art Live-Verbindung zwischen den Apps. Ich kann jetzt jede Änderung am Mesh vornehmen, es erneut exportieren und diese automatisch in USD Composer übernehmen lassen.
Es wird noch besser! Sobald wir das Modell importiert haben, können wir Substance Painter öffnen, den Omniverse-Connector aktivieren und zu Mesh importieren gehen, um unser Objekt automatisch von USD Composer in Substance zu importieren. An diesem Punkt können wir immer noch Änderungen in Blender vornehmen, es erneut exportieren und diese in USD Composer übernehmen lassen, das automatisch mit Substance Painter verknüpft wird.
Sobald wir jedoch Texturen in Substance Painter hinzufügen, werden diese Texturen durch erneutes Ausführen entfernt. Wenn Sie also zufrieden sind, fügen Sie Ihre Materialien in Substance Painter hinzu, und mit aktiviertem Life Link werden diese automatisch in USD Composer angezeigt.
Alle Änderungen, die Sie dann vornehmen, werden automatisch exportiert und in USD Composer aktualisiert. Wirklich, wirklich cool!
Für mich ist dieser Workflow so ziemlich umwerfend. Änderungen in Blender und Substance Painter in Echtzeit vornehmen zu können und all dies automatisch in der gesamten Pipeline zu verarbeiten und im endgültigen Rendering widerzuspiegeln, ist etwas Besonderes.
Wenn Sie daran interessiert sind, alles auszuprobieren, was Nvidia Omniverse zu bieten hat, können Sie es über den Link in der Beschreibung kostenlos herunterladen. Und wenn Sie mehr über alle technischen Anwendungsfälle erfahren möchten, die USD und Omniverse zusammen bieten, finden Sie einen weiteren kostenlosen Download-Link sowie einen Link zur virtuellen oder persönlichen Teilnahme an den offenen USD-Day-Sitzungen auf der GTC im März.
Ich empfehle Ihnen wirklich, sich das anzusehen, denn dies ist wirklich die Zukunft der 3D-Workflows.
Mehr über USD
Neben diesem unterhaltsamen Beispiel hat USD noch viel mehr zu bieten. Und wenn Sie seine Möglichkeiten gut nutzen, werden Sie als Künstler viel effizienter. Was kann es also noch?
Nun, abgesehen von der Tatsache, dass ein universelles Dateiformat Ihr Leben erheblich erleichtern würde, ist es absolut die Zukunft. Seit August 2023 ist USD eine offizielle gemeinnützige Organisation namens The Alliance of Open USD (AO USD), kurz gesagt – mit Pixar, Apple, Adobe, Autodesk und Nvidia als Gründungsmitglieder.
Ich denke, das zeigt wirklich, wie stark diese Unternehmen investiert sind und wie sehr sie dies als die Zukunft eines interoperablen Dateiformats sehen – das jeder sehr einfach verwenden können sollte.
USD ist nicht nur ein Dateiformat, sondern speichert fast alles – von Lichtern und Kameras bis hin zu Simulationscaches und Szenendaten – in einer ebenenartigen Struktur, die als „Prims“ (kurz für Primitives) bezeichnet wird. Es enthält alle Daten, um komplexe Szenen und Assets in einem Format zu beschreiben, das von einer Vielzahl von Anwendungen gelesen werden kann.
Wenn man das weiß, macht der Name „Universal Scene Description“ eigentlich eine Menge Sinn!
Wenn Sie mit Blender-Sammlungen vertraut sind, funktioniert USD ähnlich. Sie können alles in mehreren verschachtelten Sammlungen verschachteln, mit dem zusätzlichen Vorteil, dass USD alle diese Ebenen als Instanzen behandelt. Daher ist es in der Lage, alle Daten sehr schnell und optimiert zu laden und zu lesen.
Dies funktioniert ähnlich wie das Instanziieren von Sammlungen in Blender, was gut ist, da Instanzen weniger Rechenleistung benötigen als tatsächliche duplizierte Objekte. Es ist auch sehr ähnlich wie das Pre-Comping in After Effects oder das Compounding in Nuke – Sie gruppieren im Grunde Dinge in verschachtelten Gruppen/Ebenen, was es dem Computer erleichtert und beschleunigt, mit der Datei zu arbeiten.
Ein großartiges Beispiel für diese Optimierung ist Nvidias neuestes USD-Beispielprojekt namens „Da Vincis Werkstatt“. Mit ihrer USD Composer App (die sich perfekt für die Anzeige von USD-Projekten mit Echtzeitbeleuchtung eignet) kann ich diese massive 67-GB-Bibliothek mit Assets, Texturen und Lichtern mit Millionen von Polygonen mit fast 120 FPS ohne jegliche Verzögerung oder Probleme abspielen. Dies ist möglich, da USD die Dateien und Texturen äußerst optimiert lädt.
Auch für Animationen, die früher als Alembic-Dateien exportiert wurden, ist das USD-Caching jetzt viel schneller. Alembic-Dateien sind in der Regel riesig, sehr unoptimiert und werden von Ihrem Computer langsam gelesen, was in der Regel zu einer abgehackten Wiedergabe führt. Mit USD ist das Erreichen einer stabilen FPS überhaupt kein Problem und die Dateigröße ist viel kleiner.
Weitere Vorteile
Ein weiteres wirklich cooles Feature ist, dass Sie ganz einfach von außerhalb der Datei auf die Ebenen in Ihrem USD-Projekt zugreifen können. Wenn es beispielsweise eine Prim-Ebene gibt, die die Daten enthält, dass eine Kugel in einer USD-Datei grün ist, können wir die Farbe der Kugel ändern, ohne die Datei jemals in Blender zu öffnen, indem wir diese Farbe einfach in einem USD-kompatiblen Editor wie USD Composer in Rot ändern! Das ist unglaublich leistungsstark.
Obwohl dies natürlich ein einfaches Beispiel ist, zeigt es das Potenzial. Ein weiterer großer Vorteil ist, dass USD es Ihnen weiterhin ermöglicht, nur an einer einzelnen Ebene einer komplexen Datei in einer bestimmten Software zu arbeiten. Selbst wenn Ihre Datei ein komplettes Projekt mit Kameras, Lichtern usw. enthält, können Sie trotzdem nur ein Teil davon öffnen – z. B. ein einzelnes Modell – in Substance Painter, und nur an diesem Teil des Projekts arbeiten, ohne etwas anderes zu beeinträchtigen.
Dies gilt auch, wenn mehrere Personen an derselben Datei arbeiten – eine weitere große Stärke von USD. Zehn Personen könnten an derselben Datei arbeiten, sodass Änderungen, die von Künstler Nummer eins vorgenommen werden, für Künstler Nummer zwei sofort sichtbar sind, sodass diese ihre Arbeit entsprechend anpassen können. Die Möglichkeit, mit Personen aus der Ferne zusammenzuarbeiten, ist unglaublich leistungsstark.
Die Zukunft der 3D-Pipelines
Man kann mit Sicherheit sagen, dass USD weit mehr als nur ein Dateiformat ist. Es ist eine umfassende Technologieplattform und ein Ökosystem, das in seiner Mission wirklich mit Blender übereinstimmt: die Freiheit, ohne Einschränkungen zu erstellen.
USD befindet sich noch in der Entwicklung. Der Traum ist real – ein universelles Software-Dateiformat, das von jeder Software in der Branche verwendet werden kann und von mehreren Künstlern in Echtzeit bearbeitet werden kann.
Wir sollten alle dankbar sein, dass Pixar mit dieser unglaublichen Entwicklung den Weg bereitet und dass Unternehmen wie Nvidia und Apple ihren Teil dazu beitragen.