Universal Scene Description (USD)

Импорт файлов USD

Файлы USD обычно представляют сцену в качестве иерархии примитивов, или „prims“. Отдельные примитивы содержат данные для описания структур сцены, таких как геометрия, освещение, камеры и трансформационные иерархии. USD-Импортёр Blender’а конвертирует USD-примитивы в иерархию объектов Blender’а. Как и USD-экспортёр, импортёр пока не обрабатывает некоторые концепции USD-композиции, такие как слои и ссылки.

Следующие типы данных USD могут быть импортированы в качестве объектов Blender’а:

  • Камеры (cameras)

  • Кривые (curves)

  • Источники освещения (lights)

  • Материалы (materials)

  • Меши (meshes)

  • Облака точек (point clouds)

  • Примитивные формы (primitive shapes)

  • Объёмы* (volumes)

Более подробную информацию о том, как обрабатываются различные типы данных, см. в следующих ниже описаниях в разделе «Параметры импорта».

Примечание

При импорте архива USDZ, – важно внимательно рассмотреть параметр «Импортировать текстуры», чтобы определить, следует ли копировать файлы текстур из zip-архива и как это сделать.

Примитивы Xформации и области действия

USD предоставляет тип примитива Xform, содержащий данные трансформации, которые могут использоваться для представления трансформационных иерархий и организации сцены. Такие Xform примитивы импортируются в качестве объектов-пустышек Blender’а.

USD также поддерживает примитивы Scope, которые являются структурами, не содержащими данные трансформации, но которые служат для группировки других элементов сцены. В Blender’е нет точного аналога концепции «области действия», поэтому такие примитивы импортируются в качестве объектов-пустышек Blender’а, расположенные в начале координат. Это является несовершенным представлением, поскольку сами объекты-пустышки могут иметь трансформацию, а Scope’ы – нет, но этот подход, тем не менее, помогает сохранять структуру иерархии сцены.

Примитивы создающие экземпляры в своих точках

USD предоставляет тип примитива UsdGeomPointInstancer, который содержит экземпляры, распределённые по точкам самого примитива.

Они импортируются в Blender в качестве облака точек с помощью модификатора „Geometry Nodes“ и ноды „Instance On Points“.

Анимации (animations)

Импортёр поддерживает два типа анимации:

  • Анимация трансформаций: если примитив USD имеет изменяющиеся во времени данные трансформации, то к импортируемому объекту Blender’а будет добавляться ограничитель „Transform Cache“.

  • Анимация геометрии: Анимированная геометрия меша, кривой и облака точек поддерживается путём добавления модификатора „Mesh Sequence Cache“ к импортируемым данным. Анимация атрибута геометрии (USD Primvar) поддерживается для всех типов данных, имеющих соответствующие эквиваленты Blender’а. Сюда входят цвета, UV, скорости и другие общие данные атрибутов. Обратите внимание, что секвенции файлов USD (т. е. уникальный файл на кадр) не поддерживаются.

Материалы (materials)

Если меш USD или подмножество геометрии имеет связанный материал, импортёр назначает объекту Blender’а материал с тем же именем, что и материал USD. Если материал Blender’а с тем же именем уже существует в сцене, может быть использован существующий материал в зависимости от параметра „Конфликт названий материалов“. В противном случае будет создан новый материал.

Если материал USD имеет в качестве источника шейдера USD Preview Surface, то цвет отображения во вьюпорте, металлик и шероховатость устанавливаются в соответствии с входными значениями USD Preview Surface.

Также есть опция „Импорт USD превью“ для преобразования шейдеров USD Preview Surface в ноды шейдеров Blender’а „Principled BSDF“. Данная опция может реализовываться с потерями, так как она пока не обрабатывает преобразование всех настроек и типов шейдеров, но она может генерировать приблизительные визуализации материалов.

Ориентация системы координат

Если импортируемый USD имеет ориентацию „Y - вверх“, – к корневым объектам будет автоматически применяться вращение для преобразования в ориентацию Blender’а „Z - вверх“.

Параметры импорта

При импорте файла USD будут доступны следующие параметры:

Общее

Маска пути (path mask)

Импортировать только подмножество сцены USD, основанное на заданном примитиве.

Включить (include)
Только видимые примитивы (visible primitives only)

Не импортировать невидимые примитивы USD. Применимо только к примитивам с неанимированным атрибутом visibility. Примитивы с анимированной видимостью – всегда будут импортироваться.

Только заданные примитивы (defined primitives only)

Если этот параметр отключён, – он позволяет импортировать примитивы USD, которые не определены, например те, которые имеют спецификатор переопределения.

Установить диапазон кадров (set frame range)

Обновить начальный и конечный кадры сцены, чтобы они соответствовали таковым в USD-контейнере.

Создать коллекцию (create collection)

Добавить все импортированные объекты в новую коллекцию.

Относительный путь (relative path)

Выбрать файл относительно пути к файлу .blend.

Применить масштаб преобразования единиц (apply unit conversion scale)

Масштабировать объекты сцены по значению USD контейнера metersPerUnit. Это масштабирование будет применяться в дополнение к значению, указанному в параметре „Scale“.

Масштаб (scale)

Значение, на которое следует масштабировать импортируемые объекты по отношению к мировому началу координат.

Шкала интенсивности света (light intensity scale)

Шкала интенсивности импортируемых источников света.

Пользовательские свойства (custom properties)

Поведение при импорте атрибутов USD в качестве пользовательских свойств.

Нет* (none):

Не импортировать пользовательские атрибуты USD.

Пользователь (user):

Импортирует атрибуты USD в пространство имён userProperties в качестве пользовательских свойств. Пространство имён будет удалено из имён свойств.

Все пользовательские (all custom):

Импортирует все пользовательские атрибуты USD в качестве пользовательских свойств. Пространства имён будут сохранены в именах свойств.

Типы объектов (object types)

Камеры (cameras)

Импортировать примитивы UsdGeomCamera в качестве объектов-камер.

Поддерживаемые атрибуты камеры включают:

  • Тип проецирования (перспективная и ортогональная)

  • Фокусное расстояние.

  • Расстояние глубины резкости.

  • Диафрагма (F) (aperture).

  • Начало и конец отсечения.

  • Сдвиг сенсора (наклон) по осям X и Y.

  • Размер сенсора (ширина и высота диафрагмы).

Примечание

Большинство свойств поддерживают анимацию. Однако импорт размера диафрагмы ограничен из-за различий в интерпретации размеров сенсора между USD и Blender’ом. Когда анимируются размеры диафрагмы, – также анимируются и соответствующие значения сдвига для поддержания согласованности.

Кривые (curves)

Импортировать примитивы UsdGeomBasisCurves в качестве кривых и UsdGeomNurbsCurves в качестве мешей Blender’а.

Источники освещения (lights)

Импортировать источники света как объекты типа «источники освещения». В настоящее время не поддерживает цилиндрические или геометрические источники света.

Свет мирового свода (world dome light)

Преобразует первый обнаруженный купольный осветитель UsdLuxDomeLight или UsdLuxDomeLight_1 в шейдер мировой окружающей среды.

Материалы (materials)

Импортировать материалы UsdPreviewSurface.

Меши (meshes)

Импортировать примитивы UsdGeomMesh в качестве меш-объектов.

Объёмы* (volumes)

Импортировать ассеты OpenVDB UsdVolVolume в качестве объектов-объёмов.

Облака точек (point clouds)

Импортировать примитивы UsdGeomPoints в качестве объектов-облаков точек.

Формы USD (USD shapes)

Импортировать примитивные формы USD в качестве мешей Blender’а. Поддерживаются UsdGeomCapsule, UsdGeomCapsule_1, UsdGeomCone, UsdGeomCube, UsdGeomCylinder, UsdGeomCylinder_1, UsdGeomPlane и UsdGeomSphere.

Назначение отображения (display purpose)
Рендеринг (render)

Включить примитивы с назначением рендеринг.

Прокси (proxy)

Включить примитивы с назначением прокси.

Направляющие (guide)

Включить примитивы с назначением направляющие.

Назначение материала (material purpose)

Попытаться импортировать материалы с заданным назначением. Если ни один материал с этим назначением не привязан к примитиву, то резервное поведение, если таковое имеется, будет одним из указанных ниже.

Универсальные (all purpose):

Попытка импортировать материалы allPurpose.

Предварительный просмотр (preview):

Попытка импортировать материалы preview. Загружать материалы allPurpose в качестве запасного варианта.

Полностью (full):

Попытка импортировать материалы full. Загружать материалы allPurpose или preview в указанном порядке в качестве «запасного варианта».

Геометрия (geometry)

UV-Координаты (UV coordinates)

Чтение UV-координат меша.

Атрибуты цвета (color attributes)

Преобразовать значения displayColor USD меша в атрибуты цвета Blender’а.

Атрибуты меша (mesh attributes)

Читать USD Primvars как атрибуты меша.

Подразделение (subdivision)

Создать модификаторы „Subdivision Surface“ на основе атрибута USD SubdivisionScheme.

Проверить меши (validate meshes)

Проверить импортируемый меш на наличие повреждённых данных и при необходимости исправлять их. Если эта опция отключена, – ошибочные данные могут привести к сбоям при отображении или редактировании мешей. Эта опция хоть и замедляет импорт, но крайне необходима, поскольку ошибки данных не всегда могут быть очевидны.

Объединить родительскую Xформацию (merge parent Xform)

Разрешить примитивам USD объединяться с их родительским элементом Xформации, если они являются единственным дочерними элементами в иерархии.

Риггинг (rigging)

Ключи формы (shape keys)

Импортировать формы смешивания USD в качестве ключей формы Blender’а.

Арматуры (armatures)

Импортировать скелеты USD в качестве арматур Blender’а.

Материалы (materials)

Импорт всех материалов (import all materials)

Также импортировать материалы, которые не используются ни одной геометрией. Обратите внимание, что если эта опция «ложна», материалы, на которые ссылается геометрия, всё равно будут импортированы.

Импорт USD превью (import USD preview)

Преобразовать поверхностные шейдеры предпросмотра USD в шейдерные сетиPrincipled BSDF“.

Установить смешивание материалов (set material blend)

Если опция „Import USD Preview“ включена, – метод смешивания материалов будет автоматически установлен на основе входов шейдера opacity и opacityThreshold, что позволяет визуализировать прозрачные объекты.

Конфликт названий материалов (material name collision)

Поведение, когда имя импортируемого материала конфликтует с существующим материалом.

Сделать уникальным (make unique):

Импортировать каждый материал USD как уникальный материал Blender’а.

Существующая ссылка (reference existing):

Если материал с таким же именем уже существует, – сослаться на него вместо импортирования.

Текстуры (textures)

При импорте пакета USDZ следующие параметры будут определять, следует ли и каким образом копировать зависимости текстурных ассетов USD из zip-архива, чтобы их можно было загрузить в Blender.

Импортировать текстуры (import textures)

Поведение при импорте текстур из архива USDZ.

Нет* (none):

Не импортировать текстуры. Обратите внимание, что при использовании этой опции, – текстуры материалов могут быть не урегулированы в Blender’е.

Упаковано (packed):

Импортировать текстуры в качестве упакованных данных в файл Blender’а.

Копировать (copy):

Копировать файлы в папку, указанную в параметреTextures Directory“.

Папка с текстурами (textures directory)

Путь к папке, в которую будут скопированы импортированные текстуры, если режимИмпорта текстур“ установлен наКопировать“.

Обратите внимание, что папка для текстур по умолчанию имеет относительный путь //textures, поэтому перед импортом необходимо сохранить файл Blender’а, чтобы можно было урегулировать относительный путь.

Конфликт имён файлов (file name collision)

Поведение, когда имя импортируемого файла текстуры конфликтует с уже существующим файлом.

Использовать существующий (use existing):

Если файл с таким именем уже существует, – использовать его вместо копирования.

Перезаписывать (overwrite):

Перезаписать имеющиеся файлы.

Частицы и создание экземпляров (particles and instancing)

Создание экземпляров сцены (scene instancing)

Импортировать экземпляры графа сцены USD в качестве экземпляров коллекции, в противном случае они будут импортироваться как копии.

Экспорт в файлы USD

Файлы Universal Scene Description (USD) могут содержать комплексные слои, переопределения и ссылки на другие файлы. USD-Экспортёр Blender’а использует гораздо более простой подход. При экспорте экспортируются все видимые и поддерживаемые объекты в сцене, опционально ограниченные по их состоянию выделения. Blender (пока) не поддерживает экспорт невидимых объектов, слоёв USD, вариантов и т. д..

В USD могут быть экспортированы следующие типы объекты:

  • Меши (meshes) (различных видов, см. ниже).

  • Камеры (сameras) (на данный момент только перспективные камеры, ортогональные не предусмотрены).

  • Кривые (curves)

  • Текст (экспортированный в качестве мешей).

  • Источники освещения (lights)

  • Волосы (hair) (экспортируются как кривые и ограничиваются родительскими прядями).

  • Облака точек (point clouds)

  • Метасферы (экспортируется в качестве анимированных мешей).

  • Объёмы* (volumes)

  • Арматуры (armatures)

При экспорте анимации, – окончательный, оценённый меш записывается в USD. Это означает, что экспортированы могут быть следующие меши:

  • Статические меши.

  • Деформируемые меши; здесь топология меша не меняется, но со временем изменяется расположение вершин. Примерами являются анимированные персонажи или подпрыгивающие (но не трескающиеся) объекты.

  • Произвольно анимированные меши; здесь топология меняется. Примером может служить результат симуляции жидкости, где брызги жидкости могут отрываться от основного «тела» флюида.

Примечание

Чтобы экспортировать сцену Blender’а как USDZ-архив, – установите расширение файла вывода на .usdz. Экспортированный пакет USDZ будет представлять собой zip-архив, содержащий зависимости документа USD и текстуры.

../../_images/files_import-export_usd_example.png

Кадр из Spring экспортированный в USD и открытый в USDView.

Параметры экспорта (export options)

При экспорте в файл USD будут доступны следующие параметры:

Общее

Корневой примитив (root prim)

Если задано, – добавляет примитив трансформации с указанным путём к контейнеру в качестве родительского элемента всех экспортируемых данных.

Включить (include)
Только выделенное (selection only)

Если этот флажок установлен, – экспортироваться будут только выделенные объекты. Экземпляры объектов, например коллекции, копии которых создаются в сцене, – будут считаться «выделенными», когда выделен их источник.

Анимация (animation)

Если флажок установлен, – экспортируется весь диапазон кадров сцены. Если флажок снят, – экспортируется только текущий кадр сцены.

Данные Blender’а (Blender data)
Пользовательские свойства (custom properties)

Экспортирует пользовательские свойства в качестве атрибутов USD. Свойство „Namespace“ используется для определения пространства имён, в которое записываются атрибуты.

Пространство имён (namespace)

Если установлено, – добавить указанное пространство имён в качестве префикса к экспортируемым именам пользовательских свойств. Это применимо только к именам тех свойств, которые ещё не имеют префикса (например, это будет применено к имени bar, но не к foo:bar) и не применимо к именам объектов и данных Blender’а, которые всегда экспортируются в пространстве имён userProperties:blender.

По умолчанию используется пространство имён userProperties.

Идентификаторы Blender’а (Blender names)

Создать пользовательские атрибуты USD, содержащие исходные имена объектов Blender’а и данных объектов.

Разрешить юникод (allow unicode)

Сохраняет символы в кодировке UTF-8 при записи USD примитива и имён свойств (для открытия полученных файлов требуется программное обеспечение, использующее USD 24.03 или выше).

Ссылки на файлы (file references)
Относительные пути (relative paths)

Использовать относительные пути для ссылки на внешние файлы (например, текстуры, объёмы) в экспортированном файле USD, в противном случае будут использоваться абсолютные пути.

Изменить ориентацию (convert orientation)

Преобразовать ориентацию осей в другую систему координат, чтобы она соответствовала системе координат других приложений. Blender использует „Y - вперёд“, „Z - вверх“ (так как вид «спереди» смотрит вдоль направления „+Y“). Например, приложения обычно используют „Y“ в качестве оси «вверх», в этом случае необходимо использовать „-Z - вперёд“, „Y - вверх“.

Ось «вперёд»/»вверх» (forward / up axis)

Сопоставив их с различными осями, вы можете преобразовывать вращения между осями «вверх» и «вперёд» «по умолчанию» для приложения.

Единицы измерения (units)

Установить метаданные metersPerUnit USD контейнера на выбранное измерения.

Метров на единицу (meters per unit)

Значение, используемое для metersPerUnit, если выбраны Custom единицы.

Операторы Xформации (Xform ops)

Тип операторов трансформации, используемых для трансформации примитивов.

Переместить, вращать, масштабировать (translate, rotate, scale):

Экспортировать с помощью Xform операторов перемещения, вращения и масштабирования.

Переместить, ориентировать, масштабировать (translate, orient, scale):

Экспортировать с помощью Xform операторов перемещения, кватерниона ориентации и масштабирования.

Матрица (matrix):

Оператор экспорта матрицы.

Использовать настройки для (use settings for)

Определяет, следует ли использовать видимость объектов „вьюпорта“ или „рендеринга“, настройки модификаторов и другие свойства, предоставляющие аналогичные параметры, во время экспорта.

Типы объектов (object types)

Меши (meshes)

Экспортирует меш-объекты

Источники освещения (lights)

Экспортирует источники освещения. UsdLuxShapingAPI будет использоваться для поддержки светильников-прожекторов.

Свет мирового свода (world dome light)

Преобразовать материал окружения в UsdLuxDomeLight. В настоящее время работает для простых материалов, состоящих из текстуры окружения, подключённой к фоновому шейдеру, с дополнительным векторным произведением цвета текстуры.

Камеры (cameras)

Экспортирует объекты-камеры. Экспортируются только перспективные камеры.

Кривые (curves)

Экспортирует объекты-кривые

Облака точек (point clouds)

Экспортирует объекты-облака точек

Объёмы* (volumes)

Экспортирует объекты-объёмы

Волосы (hair)

Экспортирует родительские пряди волос в качестве системы кривых. Цвета прядей волос экспортироваться не будут.

Примечание

Соответствующий тип схемы USD, используемый при экспорте, аналогичен типу, считываемому при импорте. Подробности см. в разделе «импорта».

Геометрия (geometry)

UV-Карты (UV maps)

Если флажок установлен, – включает UV-координаты для экспортируемых мешей. Имя UV-карты в USD совпадает с именем в Blender’е.

Переименовать UV-карты (rename UV maps)

Экспортирует UV-карты, используя имя USD по умолчанию (st), а не имя Blender’а по умолчанию (UVMap).

Нормали (normals)

Если флажок установлен, – включает нормали для экспортируемых мешей. Это включает пользовательскую петлю нормалей.

Объединить родительскую Xформацию (merge parent Xform)

Если возможно, объединить примитивы USD с их родительскими элементами Xформации. USD не допускает вложенных примитивов UsdGeomGprims, чтобы сохранить корректность файла USD при обнаружении иерархий объектов, - будут определены промежуточные примитивы Xформации.

Триангулировать (triangulate)

Триангулирует меш перед записью. Более подробную информацию о конкретной опции см. в разделе о модификаторе „Triangulate“.

Риггинг (rigging)

Ключи формы (shape keys)

Экспортировать ключи формы в качестве формы смешивания USD.

Абсолютные ключи формы не поддерживаются.

Арматуры (armatures)

Экспортировать арматуры и меши с модификаторами „Armature“ в качестве скелетов USD и скинированных мешей.

Ограничения:

  • Модификаторы, помимо модификаторов „Armature“, применяться не будут.

  • Сгибаемые кости – не поддерживаются.

Только кости деформации (only deform bones)

Экспортировать только кости деформации и их родителей.

Материалы (materials)

Экспортирует информацию о материале объекта. По умолчанию экспортёр аппроксимирует дерево нод „Principled BSDF“, конвертируя его в формат USD шейдера для превью поверхности.

Если мешу назначено несколько материалов, для каждого материала будет создаваться подмножество геометрии. Первый материал (если таковой имеется) всегда применяется к мешу (независимо от существования подмножеств геометрии), поскольку вьюпорт Hydra не поддерживает материалы в подмножествах. Подробнее см. в «USD issue #542».

Примечание

Если „USD Preview Surface Network“ и „MaterialX Network“ отключены, материал устанавливается в соответствии с материалами вьюпорта мешей.

Поддержка смещения

Смещение поддерживается с некоторыми оговорками:

  • Поддерживается только смещение в пространстве объектов (векторное смещение – не поддерживается).

  • Элементы управления „Midlevel“ и „Scale“ могут быть только константами.

  • „MaterialX“ в настоящее время не поддерживается, подробности см. в коммите функции.

USD шейдер для превью поверхности (USD preview surface network)

Приблизительно соответствует дереву нод „Principled BSDF“, преобразуя его в формат USD шейдера для превью поверхности.

Примечание

Для поддержки opacityThreshold, иногда называемого „Alpha Clip“, – дерево нод должно либо использовать ноду „Math“, установленную на Round, если желаемый порог равен „0.5“, либо использовать пару нод „Math“, реализующих 1 - (значение < порог). Результат должен быть подключён к сокету „Alpha“ на ноде „Principled BSDF“.

Предупреждение

Поддерживаются не все ноды; в настоящее время поддерживаются только простые деревья узлов, содержащие ноды „Diffuse BSDF“, „Principled BSDF“, „Image Texture“, „UV Map“ и „Separate RGB“.

Сеть MaterialX (MaterialX network)

Генерирует графы затенения материалов с использованием стандарта MaterialX. Этот стандарт разработан для поддержки высокой степени взаимодействия между DCCs. В Blender’е MaterialX поддерживает большинство нод-шейдеров и их функциональность, но имеется несколько оговорок (см. ниже).

Предостережения по реализации

При использовании ноды „Principled BSDF“, – результирующий график очень удобен в использовании. Однако при использовании некоторых других BSDF – некоторые из сгенерированных графиков затенения становятся сложны для понимания другими DCC.

Экспорт текстур (export textures)

Метод экспорта текстур.

Оставлять (keep):

Использовать оригинальное расположение текстур.

Сохранять (preserve):

Сохранить пути к файлам текстур из уже импортированных файлов USD. Экспортировать оставшиеся текстуры в папку „textures“ рядом с файлом USD.

Новый путь (new path):

Экспортировать текстуры в папку „textures“ рядом с файлом USD.

Перезаписать текстуры (overwrite textures)

При экспорте текстур, – разрешить перезапись существующих файлов текстур.

Понижение разрешения текстур USDZ (USDZ texture downsampling)

Выбрать максимальный размер для всех экспортируемых текстур.

Оставлять (keep):

Оставить все текущие размеры текстур.

256:

Изменить размер до максимального значения в 256 пикселей.

512:

Изменить размер до максимального значения в 512 пикселей.

1024:

Изменить размер до максимального значения в 1024 пикселя.

2048:

Изменить размер до максимального значения в 2048 пикселей.

4096:

Изменить размер до максимального значения в 4096 пикселей.

Особый (custom):

Указать индивидуальный размер.

Пользовательский уменьшенный размер USDZ (USDZ custom downscale size)

Размер в пикселях „пользовательского“ понижения разрешения.

Специальные возможности (accessibility)

Метка (label)

Метка доступности, которую следует использовать для примитива «по умолчанию» экспортируемого контейнера.

Описание (description)

Описание доступности, которое следует использовать для примитива «по умолчанию» экспортируемого контейнера.

Дополнительные сведения см. в разделе «Специальные возможности пользовательского интерфейса USD».

Экспериментальные (experimental)

Создание экземпляров (instancing)

Данная опция является экспериментальной. Если флажок не установлен, – дублированные объекты будут экспортироваться в качестве реальных объектов, поэтому система частиц со 100 частицами, отображаемая со 100 мешами, будет в экспортируемом файле иметь 100 отдельных мешей. Если флажок установлен, – дублированные объекты будут экспортироваться в качестве ссылок на исходный объект. Если исходный объект не является частью экспорта, – первый дубликат будет экспортироваться в качестве реального объекта и будет использоваться в качестве ссылки.

Ограничения экспортёра

Односторонние и двусторонние меши

USD, похоже, не поддерживает двухсторонность, определённую для каждого материала или для каждой группы граней, поэтому Blender использует флаг первого материала, чтобы пометить весь меш как одно/двусторонний. Если материала нет, то по умолчанию он становится двухсторонним.

Материалы (materials)

При наличии нескольких материалов, – грани меша сохраняются в качестве подмножества геометрии, и каждый материал назначается соответствующему подмножеству. Если материал только один, то он пропускается. Обратите внимание, что подмножества геометрии не дискретизированы по времени, поэтому они могут сломаться, в случае если анимированный меш изменяет свою топологию.

Волосы (hair)

Экспортируются только родительские пряди и только с постоянным цветом. Никаких UV-координат и никакой информации о нормалях.

Камера (camera)

Экспортируются только перспективные камеры.

Частицы (particles)

Частицы записываются только когда они «живы», что означает, что они всегда видны. В настоящее время нет кода, который бы делал их невидимыми за пределами их жизненного цикла.

Объекты, созданные в качестве экземпляров системой частиц, экспортируются путём добавления к имени объекта постоянного идентификатора частицы, что даёт каждой трансформации частицы уникальное имя.

Модификаторы „Geometry Nodes

При использовании узлов геометрии нодовый граф должен выводить только компоненты геометрии, соответствующие исходному типу объекта. Например, для правильного экспорта меша, использующего модификатор геометрических нод, – вывод модификатора должен содержать только меш-данные. Аналогично, объекты-кривые должны выводить только данные кривых и т. д.. Если вывод содержит какие-либо несоответствующие типы компонентов, то результатом будет некорректный экспорт. Использование ноды „Separate Components“ – это один из способов гарантировать экспорт только нужных вам компонентов.

Создание экземпляров/Ссылка

Экспорт созданных экземпляров объектов и коллекций поддерживается посредством экспериментальной опции, доступной при экспорте USD.

Экземпляры точек, созданные с помощью геометрических нод, частично поддерживаются и будут экспортироваться с использованием типа примитива UsdGeomPointInstancer. Будут работать и простые сценарии создания экземпляров с использованием ноды „Object Info“ или ноды „Collection Info“. Более комплексные сценарии, включающие исключённые коллекции, вложенные коллекции или коллекции внутри разных сцен, – могут давать неверные результаты. Рассмотрите возможность использования ноды „Realize Instances“ в ситуациях, когда экспортируются неверные экземпляры.

Экземпляры сцены, созданные путём прямого создания экземпляров коллекций или объектов, – будут записываться в USD в качестве ссылок на оригиналы. Поддерживаемые типы объектов включают меши, кривые и облака точек.

USDZ

Из-за текущего ограничения в библиотеке USD, текстуры UDIM не могут быть включены в архив USDZ. Это ограничение, скорее всего, будет устранено в будущей версии USD. (См. USD pull request #2133.)

Типы данных USD Primvar

Blender поддерживает подмножество базовых типов данных USD для импорта и экспорта.

Будут обработаны только те типы, которые изначально поддерживаются системой атрибутов Blender’а.

Тип Blender’а

Тип USD

Примечания

Логический (boolean)

bool

8-битное целое число (8-bit Integer)

uchar

Для импорта, – беззнаковое 8-битное значение USD будет преобразовано в значение со знаком. Для экспорта, – значение со знаком будет преобразовано в беззнаковое.

Целое число (integer)

int

32-битное целое число со знаком.

Нецелое (float)

float

32-битное, одинарной точности, нецелочисленное значение.

Вектор (vector)

float3

3D-вектор с 32-битными значениями с плавающей запятой.

2D-Вектор (2D vector)

float2/texCoord2f

2D-Вектор с 32-битными значениями с плавающей запятой.

Цвет (color)

color4f

Цвет RGBA с 32-битными значениями с плавающей запятой. В качестве особого случая, при обнаружении переменной примитива или атрибута для displayColor USD, он будет прочитан или записан в качестве данных color3f с компонентом Alpha 1.0.

Байтовый цвет (byte color)

color4f

USD не предоставляет эквивалент байтового цвета. Байтовые значения будут преобразованы во „float“ и экспортированы как „color4f“.

Кватернион (quaternion)

quatf

Вращение в кватернионах, число с плавающей запятой.

Предостережения по реализации

Blender не поддерживает переменные примитивов USD, использующие 64-битные целые значения (int64), использующие беззнаковые типы (uint), или использующие 64-битные значения двойной точности, или 16-битные значения с плавающей запятой половинной точности. Например, сюда входят такие типы, как matrix4d (матрица 4x4 чисел двойной точности) и quath (кватернион половинной точности).

Примечание

Тип данных USD float4 не имеет прямого эквивалента в Blender’е и не будет рассматриваться в качестве Color или Quaternion Blender’а.

Специальные возможности пользовательского интерфейса USD

Blender поддерживает создание и загрузку схемы UsdUIAccessibilityAPI для всех поддерживаемых типов блоков данных, допускающих использование пользовательских свойств. Данный API описывает информацию о «доступности» для примитива USD, которую можно интегрировать в системы обеспечения специальных возможностей данной среды выполнения (если таковые имеются).

В дополнение к описанной выше опции экспорта данных о специальных возможностях для корневого примитива, информацию о доступности для каждого объекта можно задавать путём выполнения следующих шагов:

  • Добавьте следующие новые строковые свойства в блок данных объекта:

    • Обязательные поля: accessibility:<namespace>:label и accessibility:<namespace>:description

    • Необязательно: accessibility:<namespace>:priority

Пространство имён (<namespace>) может представлять собой любой допустимый идентификатор переменной примитивов USD, включая значение по умолчанию (default), которое является рекомендуемым пространством имён для использования в качестве соглашения. Значение приоритета (priority) может быть одним из значений low, standard, high.

Настоятельно рекомендуется устанавливать поля доступности корневого примитива для любого долговременного USD-документа, который может использоваться широким кругом программного обеспечения и пользователей. Например, при загрузке на торговую площадку ассетов и т. п..

Предостережения по реализации

Blender не поддерживает изменяющиеся во времени схемы доступности, поскольку пользовательские строковые свойства не подлежат анимации.