Настройка параметров преобразования модели

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

Файл параметров

Если файл с именем <modelName>. Преобразование Параметры.json находится в контейнере ввода рядом с именем модели>< ввода.<Ext>, затем файл используется для предоставления дополнительной конфигурации для процесса преобразования модели. Например, при преобразовании box.gltf используется поле. Преобразование Параметры.json для задания параметров преобразования модели.

Содержимое файла параметров преобразования JSON должно иметь следующую схему:

{
    "$schema" : "http://json-schema.org/schema#",
    "description" : "ARR ConversionSettings Schema",
    "type" : "object",
    "definitions" : 
    {
        "position_attribute" : {"type" : "string", "description" : "Destination format of the position attribute", "enum" : [ "32_32_32_FLOAT", "16_16_16_16_FLOAT" ]},
        "color_attribute" : {"type" : "string", "description" : "Destination format of the color attribute", "enum" : [ "NONE", "8_8_8_8_UNSIGNED_NORMALIZED" ]},
        "vector_attribute" : {"type" : "string", "description" : "Destination format of the normals, tangents and binormals attributes", "enum" : [ "NONE", "8_8_8_8_SIGNED_NORMALIZED", "16_16_16_16_FLOAT" ]},
        "texcoord_attribute" : {"type" : "string", "description" : "Destination format of the texture coordinates attribute", "enum" : [ "NONE", "32_32_FLOAT", "16_16_FLOAT" ]}
    },
    "properties" : 
    {
        "scaling" : { "type" : "number", "exclusiveMinimum" : 0, "default" : 1.0 },
        "recenterToOrigin" : { "type" : "boolean", "default" : false },
        "opaqueMaterialDefaultSidedness" : {" type" : "string", "enum" : [ "SingleSided", "DoubleSided" ], "default" : "DoubleSided" },
        "material-override" : { "type" : "string", "default" : "" },
        "gammaToLinearMaterial" : { "type" : "boolean", "default" : false },
        "gammaToLinearVertex" : { "type" : "boolean", "default" : false },
        "sceneGraphMode" : { "type" : "string", "enum" : [ "none", "static", "dynamic" ], "default" : "dynamic" },
        "generateCollisionMesh" : { "type" : "boolean", "default" : true },
        "unlitMaterials" : { "type" : "boolean", "default" : false },
        "deduplicateMaterials" : {"type" : "boolean", "default" : true },
        "fbxAssumeMetallic" : {"type" : "boolean", "default" : true },
        "axis" : {
            "type" : "array",
            "items" : {
                "type" : "string",
                "enum" : [ "default", "+x", "-x", "+y", "-y", "+z", "-z" ]
            },
            "minItems" : 3,
            "maxItems" : 3
        },
        "vertex" : {
            "type" : "object",
            "properties" : {
                "position" : { "$ref" : "#/definitions/position_attribute" },
                "color0" : { "$ref" : "#/definitions/color_attribute" },
                "color1" : { "$ref" : "#/definitions/color_attribute" },
                "normal" : { "$ref" : "#/definitions/vector_attribute" },
                "tangent" : { "$ref" : "#/definitions/vector_attribute" },
                "binormal" : { "$ref" : "#/definitions/vector_attribute" },
                "texcoord0" : { "$ref" : "#/definitions/texcoord_attribute" },
                "texcoord1" : { "$ref" : "#/definitions/texcoord_attribute" }
            },
            "additionalProperties" : false
        },
        "metadataKeys" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
        }
    },
    "additionalProperties" : false
}

Поле. Преобразование Параметры.json-файл может выглядеть следующим образом:

{
    "scaling" : 0.01,
    "recenterToOrigin" : true,
    "material-override" : "box_materials_override.json"
}

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

Параметры для треугольной сетки

При преобразовании треугольной сетки, например из FBX-файла , все параметры в примере схемы, показанном в предыдущем разделе, влияют на результат преобразования. В следующих разделах приведены подробные сведения о параметрах.

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

  • scaling: этот параметр масштабирует модель равномерно. Масштабирование можно использовать для увеличения или сжатия модели, например для отображения модели сборки в верхней части таблицы. Масштабирование также важно, если модель определена в единицах, отличных от метров, так как модуль отрисовки ожидает счетчиков. Например, если модель определена в сантиметрах, то при применении шкалы 0,01 модель отображается по правильному размеру. Некоторые форматы исходных данных (например, FBX-файлы ) предоставляют подсказку по масштабированию единиц. В этом случае преобразование неявно масштабирует модель до единиц измерения. Неявное масштабирование, предоставленное исходным форматом, применяется поверх scaling параметра. Окончательный коэффициент масштабирования применяется к вершинам геометрии и локальным преобразованиям узлов графа сцены. Масштабирование при преобразовании корневой сущности остается неизменным.

    Важно!

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

  • recenterToOrigin: этот параметр указывает, что модель должна быть преобразована таким образом, чтобы его ограничивающий прямоугольник был центрирован в источнике. Если исходная модель перемещается далеко от источника, проблемы точности с плавающей запятой могут вызвать отрисовку артефактов. Центрирование модели может помочь в этом сценарии.

  • opaqueMaterialDefaultSidedness: подсистема отрисовки предполагает, что непрозрачные материалы являются двойными. Если это предположение не соответствует определенной модели, этот параметр должен иметь значение SingleSided. Дополнительные сведения см. в статье "Односторонняя отрисовка".

Дедупликация материалов

  • deduplicateMaterials: этот параметр включает или отключает автоматическую дедупликацию материалов, которые имеют одинаковые свойства и текстуры. Дедупликация происходит после обработки переопределений материалов. По умолчанию он включен.

  • Если модель имеет более 65 535 материалов даже после дедупликации, служба пытается объединить материалы с аналогичными свойствами. В качестве последнего варианта все материалы, превышающие предел, заменяются красным материалом об ошибке.

На следующем рисунке показаны два куба из 68 921 цветных треугольников. Левый пример — перед дедупликацией с цветными материалами 68 921. Правильный пример — после дедупликации с 64 000 цветными материалами. Лимит — 65 535 материалов. Дополнительные сведения об ограничениях материалов см. в разделе "Ограничения".

Screenshot that shows two cubes of 68,921 colored triangles and the effect of deduplication.

Параметры цветового пространства

Подсистема визуализации ожидает, что значения цвета будут находиться в линейном пространстве. Если модель определена с помощью гамма-пространства, необходимо задать trueследующие параметры:

  • gammaToLinearMaterial: преобразуйте цвета материала из гамма-пространства в линейное пространство.
  • gammaToLinearVertex: преобразуйте цвета вершин из гамма-пространства в линейное пространство.

Примечание.

Для форматов файлов FBX, E57, PLY, LAS, LAZ и XYZ эти параметры задаются true по умолчанию. Для всех других форматов файлов используется falseзначение по умолчанию.

Параметры сцены

  • sceneGraphMode: определяет, как преобразуется граф сцены в исходном файле.
    • dynamic (по умолчанию): все объекты в файле предоставляются как сущности в API и могут быть преобразованы и повторно преобразованы произвольно. Во время выполнения иерархия узлов идентична структуре в исходном файле.
    • static: аналогично dynamic, но объекты в графе сцены не могут быть повторно преобразованы в другие объекты динамически во время выполнения. Для динамических моделей с множеством движущихся частей, таких как представление взрыва, параметр dynamic создает модель, которая более эффективна для отрисовки, но static режим по-прежнему позволяет преобразовывать отдельные части. Если динамическое повторное изменение не требуется, static вариант наиболее подходит для моделей с несколькими отдельными частями.
    • none: граф сцены свернут в один объект.

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

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

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

Совет

Многие приложения загружают несколько моделей. Необходимо оптимизировать параметры преобразования для каждой модели в зависимости от способа его использования. Например, если вы хотите отобразить модель автомобиля для пользователя, чтобы разобраться и проверить его подробно, сначала преобразуйте его с помощью dynamic режима. Тем не менее, если вы также хотите разместить автомобиль в среде шоу-комнаты, вы можете преобразовать эту модель с помощью sceneGraphMode набора staticв , или даже в none.

Параметры физики

  • generateCollisionMesh: если вам нужна поддержка пространственных запросов в модели, этот параметр должен быть включен. Создание сетки столкновений не добавляет дополнительное время преобразования, а также не увеличивает размер выходного файла. Время загрузки и стоимость среды выполнения модели, которая имеет сетки столкновений, лишь незначительно выше. Этот флаг можно оставить по умолчанию (включено), если у вас нет определенной причины исключения модели из пространственных запросов.

Неосвещенные материалы

  • unlitMaterials: по умолчанию преобразование создает физически основанные материалы отрисовки (PBR). Если этот параметр задан, преобразователь вместо этого обрабатывает все материалы как цветовые материалы. Если у вас уже есть данные, которые уже включают освещение, например модели, созданные с помощью фотограмметрия, этот параметр позволяет быстро применить правильное преобразование для всех материалов. Вам не нужно переопределять каждый материал по отдельности.

Преобразование из предыдущих форматов FBX и моделей материалов Phong

  • fbxAssumeMetallic: более ранние версии формата FBX определяют свои материалы с помощью модели материала Phong. Процесс преобразования должен определить, как эти материалы сопоставляют с моделью PBR отрисовщика. Обычно это сопоставление хорошо работает, но неоднозначность может возникнуть, когда материал не имеет текстур, высоких спектрических значений и несерого цвета альбэдо. В этом сценарии преобразование должно выбирать между приоритетами высокоспециализированных значений, определяя весьма отражающий и металлический материал, где цвет albedo растворяется, или приоритеты цвета альбэдо путем определения чего-то, как в блестящий красочный пластик. По умолчанию процесс преобразования предполагает, что высокоспекулярные значения подразумевают металлический материал в неоднозначных сценариях. Этот параметр можно задать для false противоположного эффекта.

Переопределение системы координат

  • axis: используйте этот параметр для переопределения векторов системных единиц координат. Значения по умолчанию: ["+x", "+y", "+z"]. В теории формат FBX имеет заголовок, в котором определены эти векторы, а преобразование использует эти сведения для преобразования сцены. Формат GLTF также определяет систему фиксированной координаты. На практике некоторые ресурсы имеют неверные сведения в заголовке или были сохранены с помощью другого соглашения системы координат. Этот параметр позволяет переопределить систему координат, чтобы компенсировать это. Например, "axis" : ["+x", "+z", "-y"] обменивается осью Z и осью Y и сохраняет передачу системы координат, превратив направление оси Y.

Метаданные узла

  • metadataKeys: используйте этот параметр для указания ключей свойств метаданных узла, которые необходимо сохранить в результате преобразования. Вы можете указать точные ключи или ключи с подстановочными знаками. Дикие карта ключи имеют формат ABC* и соответствуют любому ключу, который начинается сABC. Поддерживаемые типы значений метаданных: bool, int, float и string.

    Для ФАЙЛОВ GLTF эти данные поступают из объекта дополнительных компонентов на узлах. Для FBX-файлов эти данные поступают из Properties70 данных Model nodes. Дополнительные сведения см. в документации по 3D-инструменту активов.

При загрузке модели с включенными метаданными список записей метаданных определенной сущности можно получить с помощью асинхронной функции QueryMetadataAsync.

Формат вершин

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

Внимание

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

Эти корректировки можно внести:

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

vertex Следующий раздел в JSON-файле необязателен. Для каждой части, которая не указана явно, служба преобразования возвращается к его параметру по умолчанию.

{
    ...
    "vertex" : {
        "position"  : "32_32_32_FLOAT",
        "color0"    : "NONE",
        "color1"    : "NONE",
        "normal"    : "NONE",
        "tangent"   : "NONE",
        "binormal"  : "NONE",
        "texcoord0" : "32_32_FLOAT",
        "texcoord1" : "NONE"
    },
    ...
}

Принудив компонент NONE, он гарантирует, что выходная сетка не имеет соответствующего потока.

Форматы компонентов для потока вершин

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

Компонент вершины Поддерживаемые форматы Использование в материалах
position 32_32_32_FLOAT (по умолчанию) 16_16_16_16_FLOAT Позиция вершины. Всегда должно присутствовать.
color0 8_8_8_8_UNSIGNED_NORMALIZED (по умолчанию) NONE Цвета вершин. См. useVertexColor свойства как в цветных материалах, так и в материалах PBR, а vertexMix также в цветовых материалах.
color1 8_8_8_8_UNSIGNED_NORMALIZED, NONE (по умолчанию) Не используется. Оставьте значение по умолчанию NONE.
normal 8_8_8_8_SIGNED_NORMALIZED(по умолчанию), 16_16_16_16_FLOATNONE Используется для освещения в материалах PBR.
tangent 8_8_8_8_SIGNED_NORMALIZED(по умолчанию), 16_16_16_16_FLOATNONE Используется для освещения с обычными картами в материалах PBR.
binormal 8_8_8_8_SIGNED_NORMALIZED(по умолчанию), 16_16_16_16_FLOATNONE Используется для освещения с обычными картами в материалах PBR.
texcoord0 32_32_FLOAT(по умолчанию), 16_16_FLOATNONE Первый слот координат текстуры. Отдельные текстуры, такие как albedo и обычная карта, могут использовать слот 0 или 1, который определен в исходном файле.
texcoord1 32_32_FLOAT(по умолчанию), 16_16_FLOATNONE Второй слот координат текстуры. Отдельные текстуры, такие как albedo и обычная карта, могут использовать слот 0 или 1, который определен в исходном файле.

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

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

Формат Description Байт на вершину
32_32_FLOAT Двухкомпонентная полная точность с плавающей запятой 8
16_16_FLOAT Двухкомпонентная половина точности с плавающей запятой 4
32_32_32_FLOAT Полная точность с плавающей запятой с тремя компонентами 12
16_16_16_16_FLOAT Точность с плавающей запятой с четырьмя компонентами 8
8_8_8_8_UNSIGNED_NORMALIZED Четырехкомпонентный байт, нормализованный для [0; 1] диапазона 4
8_8_8_8_SIGNED_NORMALIZED Четырехкомпонентный байт, нормализованный для [-1; 1] диапазона 4

Рекомендации по изменению формата компонентов

  • position: Редко, что сниженная точность достаточно. 16_16_16_16_FLOAT представляет заметные артефакты квантизации, даже для небольших моделей.
  • normal, tangentи binormal: как правило, эти значения изменяются вместе. Если нет заметных артефактов освещения, которые возникают из-за нормальной квантизации, нет никаких причин повысить их точность. Однако в некоторых случаях эти компоненты могут иметь NONEзначение :
    • normal, tangentи binormal требуются только в том случае, если должна быть освещена по крайней мере один материал в модели. В Azure Удаленная отрисовка этот сценарий возникает, когда материал PBR используется в модели в любое время.
    • tangent и binormal требуются только в том случае, если любой из освещенных материалов использует обычную текстуру карты.
  • texcoord0 и texcoord1 : координаты текстур могут использовать уменьшенную точность (16_16_FLOAT) при пребывании их значений в [0; 1] диапазоне и при наличии максимального размера текстур в 2 048 × 2048 пикселей. Если эти ограничения превышены, качество сопоставления текстур уменьшается.

Пример

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

По умолчанию преобразователь должен предположить, что вы можете использовать материалы PBR в модели в некоторое время, поэтому он создает normaltangentи binormal данные для вас. Таким образом, использование памяти для каждой вершины — position (12 байт) + texcoord0 (8 байт) + normal (4 байта) + tangent (4 байта) + binormal (4 байта) = 32 байта. Более крупные модели этого типа могут легко иметь много миллионов вершин, что приводит к моделям, которые могут занять несколько гигабайт памяти. Такие большие объемы данных влияют на производительность, и вы даже можете выбежать из памяти.

Зная, что для модели никогда не требуется динамическое освещение, и зная, что все координаты текстур находятся в [0; 1] диапазоне, можно задать , tangentа NONEbinormal также задать normaltexcoord0 значение половины точности (16_16_FLOAT), что приводит только к 16 байтам на вершину. При сокращении данных сетки в половину можно загрузить более крупные модели и повысить производительность.

Параметры для точек облака

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

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

  • scaling: то же значение, что и для треугольных сеток.
  • recenterToOrigin: то же значение, что и для треугольных сеток.
  • axis: то же значение, что и для треугольных сеток. Значения по умолчанию, ["+x", "+y", "+z"]но большинство точек облачных данных поворачиваются по сравнению с собственной системой координат отрисовщика. Для компенсации в большинстве случаев ["+x", "+z", "-y"] фиксируется поворот.
  • gammaToLinearVertex: Аналогично треугольным сеткам, этот флаг указывает, следует ли преобразовывать цвета точек из гамма-пространства в линейное пространство. Значением по умолчанию для форматов облака точек (E57, PLY, LAS, LAZ и XYZ) является true.
  • generateCollisionMesh: аналогично треугольным сеткам для поддержки пространственных запросов, необходимо включить этот флаг.

Оптимизация памяти

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

Примечание.

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

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

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

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

Примечание.

При развертывании можно значительно повысить потребление памяти (и, следовательно, время загрузки), но улучшения производительности отрисовки незначительны.

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

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

Пример: создание экземпляра настройки в 3ds Max

Autodesk 3ds Max имеет различные режимы клонирования объектов с именем Copy, Instance и Reference. Режимы работают по-разному для инстантирования в экспортируемом FBX-файле .

Screenshot that shows an example of cloning an object by using Autodesk 3ds Max.

  • Копировать: в этом режиме сетка клонируется, поэтому не используется никакое применение ( = numMeshPartsInstanced0).
  • Экземпляр: два объекта используют одну и ту же сетку, поэтому используется встановка ( = numMeshPartsInstanced1).
  • Справочник. К геометриям можно применять различные модификаторы, поэтому экспортер выбирает консервативный подход и не использует инстантирование ( = numMeshPartsInstanced0).

Режим композиции на основе глубины

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

Уменьшить размер вершины

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

Размеры текстур

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

  • Формат файла BC1 для непрозрачных текстур цвета
  • Формат файла BC7 для текстур цвета источника с альфа-каналом

Так как формат файла BC7 имеет два раза больше памяти формата BC1, важно убедиться, что входные текстуры не предоставляют ненужный альфа-канал.

Стандартные сценарии использования

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

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

Вариант использования: архитектурная визуализация или большие карты на открытом воздухе

Для сценариев, связанных с визуализацией архитектуры или большими картами на открытом воздухе, рассмотрим следующие факторы:

  • Эти типы сцен, как правило, являются статическими. Они не нуждаются в перемещаемых частях. Соответственно, можно задать sceneGraphMode значение static(или даже none) и повысить производительность среды выполнения. В static режиме корневой узел сцены по-прежнему можно перемещать, поворачивать и масштабировать. Например, он может динамически переключаться между масштабом 1:1 (для представления первого лица) и табличным представлением.

  • Если приложение не использует вырезанные плоскости, opaqueMaterialDefaultSidedness флаг должен быть отключен. Производительность обычно составляет 20 процентов до 30 процентов. Вы по-прежнему можете использовать вырезанные плоскости, но при просмотре внутренней части объекта, который появляется контринтуитивным, не будет. Дополнительные сведения см . в виде односторонней отрисовки.

Вариант использования: модели фотограмметрия

При отображении моделей фотограмметрия обычно не требуется граф сцены. В этом сценарии можно задать значение sceneGraphModenone. Поскольку эти модели редко содержат сложный граф сцены, эффект выбора этого варианта, скорее всего, незначительный. Так как освещение уже содержится в текстурах, динамическое освещение не требуется. В этом сценарии:

  • Установите для флага unlitMaterials значение true, чтобы преобразовать все материалы в неосвещенные цветовые материалы.
  • Удалите ненужные данные из формата вершин. См. предыдущий пример.

Вариант использования: визуализация компактных компьютеров и других

В таких случаях модели часто имеют высокую степень детализации в небольшом объеме. Отрисовщик хорошо оптимизирован для обработки этих случаев. Однако большинство оптимизаций, описанных в предыдущем варианте использования, не применяются здесь. К оптимизации относятся:

  • Отдельные части должны быть доступны для выбора и перемещаться, поэтому sceneGraphMode необходимо задать значение dynamic.
  • Операции отслеживания лучей обычно являются неотъемлемой частью приложения, поэтому необходимо создавать сетки столкновений.
  • Вырезать плоскости лучше, если opaqueMaterialDefaultSidedness флаг включен.

Устаревшие компоненты

Настройка параметров преобразования модели с помощью преобразования, отличного от модели Параметры.json filename по-прежнему поддерживается, но не рекомендуется. Вместо этого используйте имя модели для конкретной <модели>. Преобразование Параметры.json filename.

material-override Использование параметра для определения файла переопределения материала в файле параметров преобразования по-прежнему поддерживается, но оно устарело. Вместо этого используйте имя модели для конкретной <модели>. Имя файла MaterialOverrides.json .

Следующие шаги