aspose.info
UK

USD - універсальний формат опису сцени

Оновлено

Що таке файл USD?

Файл із розширенням .usd — це формат файлу універсального опису сцени, який кодує дані з метою обміну даними та доповнення між програмами для створення цифрового вмісту. Розроблений Pixar, USD надає можливість обмінюватися елементарними ресурсами (наприклад, моделями) або анімацією.

Формат файлу USD

Файли USD можуть мати двійковий формат (також відомий як файли Crate) або файли з підтримкою ASCII. Обидва ці формати файлів є взаємозамінними, де посилання можуть бути пов’язані з активами .usd без зміни джерел. Формат файлу USD складається з набору бібліотек C++ із прив’язками Python для створення сценаріїв. Це дозволяє збирати та організовувати будь-яку кількість елементів 3D-сцени, таких як віртуальні набори, сцени та кадри, для передачі їх із програми в програму.

Типи даних USD

Основні типи даних, які підтримує формат файлу USD, перераховані в наведеній нижче таблиці.

Тип значенняТип C++Опис
бульбуль
ucharuint8_t8-розрядне ціле число без знака
intint32_t32-розрядне ціле число
uintuint32_t32-розрядне ціле число без знака
int64int64_t64-розрядне ціле число
uint64uint64_t64-розрядне ціле число без знака
halfGfHalf16 біт з плаваючою точкою
floatfloat32-бітове число з плаваючою комою
doubledouble64 біт з плаваючою комою
timecodeSdfTimeCodedouble представляє час, який можна розв’язати
рядокstd::рядокрядок stl
токенTfTokenвбудований рядок із швидким порівнянням і хешуванням
assetSdfAssetPathпредставляє розв’язаний шлях до іншого активу
matrix2dGfMatrix2d2x2 матриця подвійних
matrix3dGfMatrix3dматриця подвійних 3x3
matrix4dGfMatrix4dматриця подвійних 4x4
quatdGfQuatdкватерніон подвійної точності
quatfGfQuatfкватерніон одинарної точності
quathGfQuathкватерніон половинної точності
double2GfVec2dвектор із 2 подвійних
float2GfVec2fвектор із 2-х плаваючих елементів
half2GfVec2hвектор 2 половинок
int2GfVec2iвектор з 2 ints
double3GfVec3dвектор з 3 подвійних
float3GfVec3fвектор із 3 поплавками
half3GfVec3hвектор із 3 половинок
int3GfVec3iвектор з 3 ints
double4GfVec4dвектор із 4 подвійних
float4GfVec4fвектор із 4-х плаваючих елементів
half4GfVec4hвектор із 4 половинок
int4GfVec4iвектор із 4 ints

USD Приклад

Нижче наведено приклад файлу USD у простому форматі ASCII.

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

}

Посилання

Див. також