Spec-Zone.ru › Qt 6.1

Инструмент импорта активов Balsam

Инструмент Balsam — это командная строка приложения, являющаяся частью конвейера подготовки активов Qt Quick 3D. Его назначение — взять активы, созданные в инструментах создания цифрового контента, таких как Maya, 3ds Max или Blender, и преобразовать их в эффективный формат runtime для использования с Qt Quick 3D. Невозможно и не имеет смысла напрямую ссылаться на форматы обмена в приложениях, поскольку для анализа и подготовки содержимого актива перед его использованием для рендеринга в реальном времени требуется большое количество ресурсов. Вместо этого форматы обмена могут быть преобразованы с помощью инструмента Balsam в компоненты QML и ресурсы, такие как геометрия и текстуры.

Использование:

balsam [options] sourceFilename

Пример использования

Для преобразования 3D-актива, содержащегося в файле testModel.fbx с balsam будет использоваться следующая команда:

balsam testModel.fbx

Это сгенерирует следующие файлы:

  • meshes/testModel.mesh
  • TestModel.qml

которые затем могут быть использованы в проекте Qt Quick 3D, используя этот компонент QML:

import QtQuick3D

TestModel {
   id: modelInstance
}

Поддерживаемые типы 3D-активов

  • Wavefront (.obj)
  • COLLADA (.dae)
  • FBX (.fbx)
  • STL (.stl)
  • GLTF2 (.gltf, .glb)

Некоторые из поддерживаемых форматов также позволяют встраивать или ссылаться на текстурные активы. Эти активы также поддерживаются, при условии, что Qt также поддерживает их.

Поддержка проектов 3D Studio

Инструмент Balsam также поддерживает преобразование проектов, созданных с помощью Qt 3D Studio, в проекты Qt Quick 3D QML.

  • Приложение Qt 3D Studio (.uia)
  • Презентация Qt 3D Studio (.uip)

Преобразование проектов Qt 3D Studio имеет некоторые ограничения из-за различий в доступных функциях. Функции, такие как эффекты и пользовательские материалы, недоступны и не будут сгенерированы. Также есть некоторые различия в том, как реализованы анимации, поэтому при преобразовании могут возникнуть различия в поведении. Процесс преобразования не будет на 100%, и ожидается, что некоторые корректировки будут необходимы, но это облегчит процесс переноса существующих проектов.

Поддерживаемые параметры

В следующей таблице перечислены параметры командной строки, распознаваемые balsam при преобразовании файлов активов:

Примечание: Для каждого булевого параметра можно использовать --disable-<имя_параметра>

Параметр Описание
--outputPath, -o <outputPath> Устанавливает расположение для размещения сгенерированного файла(ов). По умолчанию используется текущий каталог.
--calculateTangentSpace Вычисляет касательные и бикасательные для импортированных мешей.
--joinIdenticalVertices Идентифицирует и объединяет идентичные наборы данных вершин во всех импортированных мешах.
--generateNormals Генерирует нормали для всех граней всех мешей.
--generateSmoothNormals Генерирует плавные нормали для всех вершин в меше.
--splitLargeMeshes Разделяет большие меши на меньшие подмеши.
--preTransformVertices Удаляет граф узлов и предварительно преобразует все вершины с локальными матрицами преобразования их узлов.
--improveCacheLocality Переупорядочивает треугольники для лучшей локальности кэша вершин.
--removeRedundantMaterials Ищет избыточные/неиспользуемые материалы и удаляет их.
--fixInfacingNormals Пытается определить, у каких мешей векторы нормалей направлены внутрь, и инвертирует их.
--findDegenerates Этот этап ищет вырожденные примитивы во всех мешах и преобразует их в правильные линии или точки.
--findInvalidData Этот этап ищет в всех мешах недействительные данные, такие как нулевые векторы нормалей или недействительные UV-координаты, и удаляет/исправляет их. Это призвано избавиться от некоторых распространённых ошибок экспортеров.
--transformUVCoordinates Этот этап применяет преобразования UV для каждой текстуры и записывает их в отдельные каналы координат текстур.
--findInstances Этот этап ищет дублирующиеся меши и заменяет их ссылками на первый меш.
--optimizeMeshes Этап постобработки для уменьшения количества мешей.
--optimizeGraph Этап постобработки для оптимизации иерархии сцены.
--useFloatJointIndices Сохраняет индексы суставов как числа с плавающей точкой для GLES 2.0.
--globalScale Этот этап выполнит глобальное масштабирование модели.
--globalScaleValue <value> Глобальный множитель масштаба, используемый --globalScale.
--dropNormals Удаляет нормали для всех граней всех мешей.
--removeComponentNormals Удаляет компонент нормали из мешей.
--removeComponentTangentsAndBitangents Удаляет компоненты касательных и бикасательных из мешей.
--removeComponentColors Удаляет любые цветовые компоненты из мешей.
--removeComponentUVs Удаляет любые компоненты UV из мешей.
--removeComponentBoneWeights Удаляет любые весовые компоненты костей из мешей.
--removeComponentAnimations Удаляет любые компоненты анимации из мешей.
--removeComponentTextures Удаляет любые встроенные текстурные компоненты из мешей.
--fbxPreservePivots Сохраняет дополнительные узлы поворота, созданные активами FBX (может создать глубокие иерархии узлов)
--generateMipMaps Принудительно генерирует mip-карты для всех импортированных текстурных компонентов для фильтрации mip-map текстур
--useBinaryKeyframes Записывает данные ключевых кадров в файлы в двоичном формате

В следующей таблице перечислены параметры командной строки, распознаваемые balsam при преобразовании проектов Qt 3D Studio:

Параметр Описание
--createProjectWrapper Создает оберточный компонент окна для импортированного проекта UIA. Действителен только для импорта UIA.
--createIndividualLayers Создаёт отдельный компонент для каждого слоя вместо включения содержимого слоя в компоненты презентаций.
--framesPerSecond <value> Указывает, сколько кадров анимации создаётся в секунду в анимациях.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtquick3d-tool-balsam.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API