# Universal Scene Description

Universal Scene Description (USD) ist ein Open-Source-Framework und eine Gruppe an Dateiformaten für erleichterte Kollaboration bei Computergrafik-Produktionen. USD ermöglicht es, über mehrere 3D-Programme hinweg bei größeren Projekten nondestruktiv, gemeinsam an Szenen zu arbeiten. Der Standard wurde ursprünglich von Pixar entwickelt, um in immer komplexeren und größeren Produktionspipelines Kollaboration und Datenaustausch beizubehalten und Interoperabilität zu gewährleisten. USD wird unter anderem in den Bereichen Visual Effects, Architektur, Augmented Reality, Produktdesign, Robotik und CAD verwendet.
Es werden folgende Dateiformate vom Standard unterstützt:
* .usd, das Daten in ASCII oder in Binärform enthalten kann.
* .usda, ASCII enkodiert
* .usdc, binär enkodiert
* .usdz, ein Paketdateiformat, ähnlich einem unkomprimierten, unverschlüsselten Zip-Archiv. Es kann folgende Dateiformate enthalten: usd, usda, usdc, png, jpeg, m4a, mp3 und wav.

## Grundlegende Funktionsweise

Zwar gibt es bereits zum Beispiel für 3D-Modelle verbreitete Dateiformate wie glTF oder fbx, aber diese allein sind nicht für Kollaboration und gleichzeitige Bearbeitung ganzer 3D Szenen ausgelegt. Dieses Problem wird immer gravierender, wenn in Betracht gezogen wird, dass große Studios heutzutage oft mehrere Programme in ihrer Produktionskette, oder auch Pipeline genannt, verwenden. Beispielsweise beinhaltet eine Produktionspipeline ein Programm für Modelling und Animation, eines für Simulationen, eines für die Ausleuchtung und dann noch mal ein anderes für das Rendering.
USD versucht diesem Problem zu begegnen, indem es die Zusammensetzung und Organisation der einzelnen Elemente zu standardisierten Sets und Szenen ermöglicht. An den USD-Dateien kann dann kollaborativ über die USD Plug-Ins der jeweiligen 3D Programme gearbeitet werden.
Viele Konzepte von USD sind darauf ausgelegt, nondestruktiv zu sein, das heißt, dass auch dann noch Änderungen an einem vergangenen Arbeitsschritt vorgenommen werden können, ohne dass der aktuelle Arbeitsschritt in der Pipeline ungültig oder zerstört würde.

### Prims

Abkürzung für das englische Wort Primitive – Ein Prim stellt die kleinste Einheit in USD dar. Ein Prim kann zum Beispiel für ein beliebiges 3D-Modell stehen. Prims selbst können von 3D-Programmen nicht bearbeitet werden. Sie müssen erst von dem Programm in das eigene Format konvertiert werden, um eine Änderung vorzunehmen. Anschließend kann das Objekt wieder zurück als Prim konvertiert werden. Von einem Prim können mehrere Varianten existieren, was nondestruktives Editing ermöglicht.

### Composition

Prims können auf einer Ebene, dem Scene Layer zusammengefasst werden. Verschiedene Scene Layer können dann übereinandergelegt werden. Dabei überschreibt ein Layer die unteren nicht komplett, sondern ergänzt sie in der Regel nur. Einzelne Layer können unabhängig voneinander deaktiviert werden, sodass auch hier die Bearbeitung der USD Szene nondestruktiv erfolgen kann.

## Unterstützung

* 3ds Max ab Version 2022 in der Public Beta, und Version 2023. Unterstützt den Import und Export von USD.
* Autodesk Inventor – unterstützt USD ab Version 2023.
* Maya – unterstützt USD ab Version 2022.
* Autodesk Fusion 360 unterstützt USD-Export seit April 2022.
* Apples SceneKit unterstützt .usdz-Dateien für den Austausch von 3D-Modellen.
* Nvidia hat USD-Unterstützung für Omniverse angekündigt, eine Graphics Collaboration Platform.
* Houdini verfügt über eine USD-Einbindung, Dateiaustausch und die Fähigkeit, Szenen zu bearbeiten.
* Blender unterstützt USD-Export und -Import
* mesh2mesh konvertiert von und zu USD(Z)
* Vectorworks unterstützt USD-Export und -Import