aspose.info
IT

USD - Formato descrizione scena universale

Aggiornato

Che cos’è un file USD?

Un file con estensione .usd è un formato di file Universal Scene Description che codifica i dati allo scopo di scambiare e aumentare i dati tra le applicazioni di creazione di contenuti digitali. Sviluppato da Pixar, USD offre la possibilità di scambiare risorse elementari (come modelli) o animazioni.

Formato file USD

I file USD possono avere un formato binario (noto anche come file Crate) o file supportati da ASCII. Entrambi questi formati di file sono intercambiabili in cui i riferimenti possono essere collegati a risorse .usd senza modificare le fonti. Il formato di file USD è costituito da un set di librerie C++ con collegamenti Python per lo scripting. Consente l’assemblaggio e l’organizzazione di un numero qualsiasi di elementi di scene 3D come set virtuali, scene e riprese per trasmetterli da un’applicazione all’altra.

Tipi di dati USD

I tipi di dati fondamentali supportati dal formato di file USD sono elencati nella tabella seguente.

Tipo valore tokenTipo C++Descrizione
boolbool
ucharuint8_tIntero senza segno a 8 bit
intint32_tIntero con segno a 32 bit
uintuint32_tIntero senza segno a 32 bit
int64int64_tIntero con segno a 64 bit
uint64uint64_tIntero senza segno a 64 bit
metàGfHalfvirgola mobile a 16 bit
floatfloatvirgola mobile a 32 bit
doppiodoppiovirgola mobile a 64 bit
timecodeSdfTimeCodedoppio che rappresenta un tempo risolvibile
stringastd::stringastringa stl
tokenTfTokenstringa interna con confronto veloce e hash
assetSdfAssetPathrappresenta un percorso risolvibile verso un altro asset
matrix2dGfMatrix2dMatrice 2x2 di doppi
matrix3dGfMatrix3dMatrice 3x3 di doppi
matrix4dGfMatrix4dmatrice 4x4 di doppi
quatdGfQuatdquaternione a doppia precisione
quatfGfQuatfquaternione a precisione singola
quathGfQuathquaternione a mezza precisione
double2GfVec2dvettore di 2 doppi
float2GfVec2fvettore di 2 float
half2GfVec2hvettore di 2 metà
int2GfVec2ivettore di 2 int
double3GfVec3dvettore di 3 doppi
float3GfVec3fvettore di 3 float
half3GfVec3hvettore di 3 metà
int3GfVec3ivettore di 3 int
double4GfVec4dvettore di 4 doppi
float4GfVec4fvettore di 4 float
half4GfVec4hvettore di 4 metà
int4GfVec4ivettore di 4 int

Esempio di USD

Un esempio di un file USD in un semplice formato di file ASCII è il seguente.

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

}

Riferimenti

Vedi anche