aspose.info
DE

USD - Universelles Szenenbeschreibungsformat

Aktualisiert

Was ist eine USD-Datei?

Eine Datei mit der Erweiterung .usd ist ein Universal Scene Description-Dateiformat, das Daten zum Zwecke des Datenaustauschs und der Erweiterung zwischen Anwendungen zur Erstellung digitaler Inhalte codiert. USD wurde von Pixar entwickelt und bietet die Möglichkeit, elementare Assets (z. B. Modelle) oder Animationen auszutauschen.

USD-Dateiformat

USD-Dateien können im Binärformat (auch als Crate-Dateien bezeichnet) oder ASCII-gestützte Dateien vorliegen. Diese beiden Dateiformate sind austauschbar, wobei die Referenzen mit .usd-Assets verknüpft werden können, ohne die Quellen zu ändern. Das USD-Dateiformat besteht aus einer Reihe von C++-Bibliotheken mit Python-Bindungen für die Skripterstellung. Es ermöglicht die Zusammenstellung und Organisation einer beliebigen Anzahl von 3D-Szenenelementen wie virtuellen Sets, Szenen und Aufnahmen, um sie von Anwendung zu Anwendung zu übertragen.

USD-Datentypen

Die vom USD-Dateiformat unterstützten grundlegenden Datentypen sind in der folgenden Tabelle aufgeführt.

Werttyp-TokenC++-TypBeschreibung
boolbool
ucharuint8_t8-Bit-Ganzzahl ohne Vorzeichen
intint32_t32-Bit-Ganzzahl mit Vorzeichen
uintuint32_t32-Bit-Ganzzahl ohne Vorzeichen
int64int64_t64-Bit-Ganzzahl mit Vorzeichen
uint64uint64_t64-Bit-Ganzzahl ohne Vorzeichen
halfGfHalf16-Bit-Gleitkomma
floatfloat32-Bit-Gleitkomma
doppeltdoppelt64-Bit-Gleitkomma
timecodeSdfTimeCodedouble repräsentiert eine auflösbare Zeit
stringstd::stringstl-string
tokenTfTokeninternierter String mit schnellem Vergleich und Hashing
assetSdfAssetPathstellt einen auflösbaren Pfad zu einem anderen Asset dar
matrix2dGfMatrix2d2x2 Doppelmatrix
matrix3dGfMatrix3d3x3 Doppelmatrix
matrix4dGfMatrix4d4x4 Doppelmatrix
quatdGfQuatdQuaternion mit doppelter Genauigkeit
quatfGfQuatfQuaternion mit einfacher Genauigkeit
quathGfQuathQuaternion mit halber Genauigkeit
double2GfVec2dVektor von 2 Doubles
float2GfVec2fVektor von 2 Floats
half2GfVec2hVektor von 2 Hälften
int2GfVec2iVektor von 2 ints
double3GfVec3dVektor von 3 Doubles
float3GfVec3fVektor von 3 Floats
half3GfVec3hVektor von 3 Hälften
int3GfVec3iVektor von 3 Ints
double4GfVec4dVektor von 4 Doubles
float4GfVec4fVektor von 4 Floats
half4GfVec4hVektor von 4 Hälften
int4GfVec4iVektor von 4 ints

USD-Beispiel

Ein Beispiel für eine USD-Datei im reinen ASCII-Dateiformat ist wie folgt.

#usda 1.0

class "_class_Planet"
{
    bool has_life = False
}

def Xform "SolarSystem"
{
    def "Earth" (
        references = @./planet.usda@</Planet>
    )
    {
        bool has_life = True
        string color = "blue"
}

    def "Mars" (
        references = @./planet.usda@</Planet>
    )
    {
        string color = "red"
}

    def "Saturn" (
        references = @./planet.usda@</Planet>
        variants = {
            string rings = "with_rings"
    }
    )
    {
        string color = "beige"
}
}
#usda 1.0

class "_class_Planet"
{
}

def Sphere "Planet" (
    inherits = </_class_Planet>
    kind = "model"
    variantSets = "rings"
    variants = {
        string rings = "none"
}
)
{
    variantSet "rings" = {
        "none" {
            bool has_rings = False
    }
        "with_rings" {
            bool has_rings = True
    }
}

}

Verweise

Siehe auch