aspose.info
NL

USD - Universal Scene Description Format

Bijgewerkt

Wat is een USD-bestand?

Een bestand met de extensie .usd is een Universal Scene Description-bestandsindeling die gegevens codeert met als doel gegevens uit te wisselen en te vergroten tussen toepassingen voor het maken van digitale inhoud. USD is ontwikkeld door Pixar en biedt de mogelijkheid om elementaire activa (zoals modellen) of animatie uit te wisselen.

USD-bestandsindeling

USD-bestanden kunnen een binair formaat hebben (ook bekend als Crate-bestanden) of ASCII-bestanden. Beide bestandsindelingen zijn onderling uitwisselbaar, waarbij de verwijzingen kunnen worden gekoppeld aan .usd-activa zonder de bronnen te wijzigen. Het USD-bestandsformaat bestaat uit een set C++-bibliotheken met Python-bindingen voor scripting. Het maakt assemblage en organisatie van een willekeurig aantal 3D-scène-elementen mogelijk, zoals virtuele sets, scènes en opnamen, om ze van toepassing naar toepassing te verzenden.

USD-gegevenstypen

De fundamentele gegevenstypen die door het USD-bestandsformaat worden ondersteund, staan in de volgende tabel.

Waardetype tokenC++ typeBeschrijving
boolbool
ucharuint8_t8 bit geheel getal zonder teken
intint32_t32-bits geheel getal met teken
uintuint32_t32 bit geheel getal zonder teken
int64int64_t64-bits geheel getal met teken
uint64uint64_t64 bit geheel getal zonder teken
halfGfHalf16 bit drijvende komma
floatfloat32 bit drijvende komma
doubledouble64 bit drijvende komma
timecodeSdfTimeCodedouble staat voor een oplosbare tijd
stringstd::stringstl string
tokenTfTokeninterned string met snelle vergelijking en hashing
assetSdfAssetPathvertegenwoordigt een oplosbaar pad naar een ander activum
matrix2dGfMatrix2d2x2 matrix van dubbels
matrix3dGfMatrix3d3x3 matrix van dubbels
matrix4dGfMatrix4d4x4 matrix van dubbels
quatdGfQuatdquaternion met dubbele precisie
quatfGfQuatfquaternion met enkele precisie
quathGfQuathhalf-precisie quaternion
double2GfVec2dvector van 2 doubles
float2GfVec2fvector van 2 drijvers
half2GfVec2hvector van 2 helften
int2GfVec2ivector van 2 ints
double3GfVec3dvector van 3 doubles
float3GfVec3fvector van 3 drijvers
half3GfVec3hvector van 3 helften
int3GfVec3ivector van 3 ints
double4GfVec4dvector van 4 doubles
float4GfVec4fvector van 4 drijvers
half4GfVec4hvector van 4 helften
int4GfVec4ivector van 4 ints

USD voorbeeld

Een voorbeeld van een USD-bestand in gewoon ASCII-bestandsformaat is als volgt.

#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
    }
}

}

Referenties

Zie ook