Создание трехмерных моделей для использования в домашних условиях

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

Общие сведения о требованиях к ресурсам

При создании трехмерных моделей для Windows Смешанная реальность существуют некоторые требования, которые должны соответствовать всем ресурсам:

  1. Экспорт — ресурсы должны быть доставлены в формате GLB (двоичный glTF), .obj или FBX-файл
  2. Моделирование . Ресурсы должны быть менее 10k треугольников, не более 64 узлов и 32 вложенных мишеи на loD
  3. Материалы . Текстуры не могут быть больше 4096 x 4096, и наименьшая карта mip не должна быть больше 4 в любом измерении
  4. Анимация . Анимация не может быть длиннее 20 минут в 30 FPS (36 000 ключевых кадров) и должна содержать <= 8192 морф целевых вершин
  5. Оптимизация — ресурсы должны быть оптимизированы с помощью WindowsMRAssetConverter. Обязательный для версий <ОС Windows = 1709* и рекомендуется для версий >ОС Windows = 1803

Примечание.

Приложение 3D-просмотра поддерживает различные форматы и разрешения, но в конечном счете преобразует модели в GLB/glTF, прежде чем отображать их в Смешанная реальность дома.

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

Подробные рекомендации

Экспорт моделей

Дом windows Смешанная реальность ожидает, что трехмерные ресурсы будут доставлены с помощью формата GLB-файла с внедренными изображениями и двоичными данными. Glb — это двоичная версия формата glTF, которая является бесплатной бесплатной версией открытого стандарта для 3D-доставки активов, поддерживаемых группой Хронос. Так как glTF развивается как отраслевый стандарт для взаимодействия трехмерного содержимого, поэтому корпорация Майкрософт будет поддерживать формат в приложениях и интерфейсах Windows. Если вы еще не создали ресурс glTF, прежде чем найти список поддерживаемых экспортеров и преобразователей на странице github рабочей группы glTF.

Рекомендации по моделированию

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

  1. Ось "Вверх" должно иметь значение "Y".
  2. Ресурс должен столкнуться с "вперед" к положительной оси Z.
  3. Все активы должны быть построены на земле плоскости в источнике сцены (0,0,0)
  4. Рабочие единицы должны быть заданы для счетчиков и активов, чтобы ресурсы можно было создавать в мировом масштабе.
  5. Все сетки не нужно объединять, но рекомендуется, если вы нацелены на устройства с ограниченными ресурсами.
  6. Все сетки должны совместно использовать один материал, а для всего ресурса используется только один набор текстур.
  7. UV должны быть размещены в квадратном расположении в пространстве 0-1. Избегайте наливных текстур, хотя они разрешены.
  8. Многопользовательские телевизоры не поддерживаются
  9. Двойные материалы не поддерживаются

Количество треугольников и уровни детализации (LOD)

Дом windows Смешанная реальность не поддерживает модели с более чем 10000 треугольниками. Рекомендуется триангуляции сетки перед экспортом, чтобы убедиться, что они не превышают это число. Windows MR также поддерживает необязательные геометрические уровни детализации (LOD) для обеспечения производительности и высокого качества. WindowsMRAssetConverter поможет объединить 3 версии модели в одну модель GLB. Windows определяет, какой LOD будет отображаться на основе объема недвижимости экрана, которую берет модель. Поддерживаются только три уровня LOD со следующими рекомендуемыми числами треугольников:

Уровень LOD Рекомендуемое число треугольников Максимальное число треугольников
LOD 0 10,000 10,000
LOD 1 5 000 10 000
LOD 2 2500 10,000

Количество узлов и ограничения подмеша

Дом windows Смешанная реальность не поддерживает модели с более чем 64 узлами или 32 подмешами на loD. Узлы — это концепция в спецификации glTF, которая определяет объекты в сцене. Подмешки определяются в массиве примитивов в сетке в объекте.

Возможность Description Максимальное число поддерживаемых Документация
Узлы Объекты в сцене glTF 64 на loD здесь
Вложенные мешки Сумма примитивов во всех сетках 32 на loD здесь

Рекомендации по материалу

Текстуры должны быть подготовлены с помощью рабочего процесса шероховатости металла PBR. Начните с создания полного набора текстур, включая Albedo, Normal, Occlusion, Metallic и Roughness. Windows Смешанная реальность поддерживает текстуры с разрешениями до 4096x4096, но рекомендуется создавать 512x512. Текстуры должны создаваться в разрешениях в нескольких из 4. Это требование к формату сжатия, применяемого к текстурам, в шагах экспорта, описанных ниже. При создании карт MIP или текстуры наименьший mip должен быть не более 4x4.

Рекомендуемый размер текстуры Максимальный размер текстуры Наименьший MIP
512 x 512 4096x4096 max 4x4

Карта Albedo (базовый цвет)

Необработанный цвет без сведений о освещении. Эта карта также содержит информацию о отражении и диффузной информации для металлических поверхностей (белой на металлической карте) и изоляции (черной на металлической карте) соответственно.

Обычная

Карта "Обычное пространство Тангент"

Карта шероховатости

Описывает микростраховку объекта. Белый 1.0 грубый черный 0,0 гладкий. Эта карта дает ресурсу больше всего символов, так как он действительно описывает поверхность. Например, царапины, отпечатки пальцев, смыки, грабли и т. д.

Карта внешнего окклюзии

Карта масштабирования значений, показывающая области occluded light, которая блокирует отражение

Металлическая карта

Сообщает шейдеру, если что-то является металлом или нет. Необработанный металл = 1,0 белый non-metal = 0,0 черный. Могут быть переходные серые значения, указывающие на то, что охватывает необработанный металл, например грязь, но в целом эта карта должна быть черно-белой только.

Оптимизации

Windows Смешанная реальность home предлагает ряд оптимизаций поверх основной спецификации glTF, определенной с помощью пользовательских расширений. Эти оптимизации необходимы в версиях <Windows = 1709 и рекомендуется для более новых версий Windows. Вы можете легко оптимизировать любую модель glTF 2.0 с помощью Windows Смешанная реальность Asset Converter, доступной на сайте GitHub. Это средство выполнит правильную упаковку текстур и оптимизацию, как указано ниже. Для общего использования рекомендуется использовать WindowsMRAssetConverter, но если вам потребуется больше контроля над интерфейсом и вы хотите создать собственный конвейер оптимизации, см. подробную спецификацию ниже.

Примечание.

Полный список возможностей для точных ограничений модели см . в статье оптимизации трехмерной модели для использования в приложениях Dynamics 365.

Материалы

Чтобы повысить время загрузки активов в средах Windows MR Смешанная реальность поддерживает отрисовку сжатых текстур DDS, упакованных в соответствии со схемой упаковки текстур, определенной в этом разделе. Текстуры DDS ссылаются с помощью расширения MSFT_texture_dds. Сжатие текстур настоятельно рекомендуется.

HoloLens

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

Свойство glTF Текстура Схема упаковки
pbrFxicRoughness baseColorTexture Красный (R), зеленый (G), синий (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessTexture Обычный (RG), грубость (B), металлический (A)

При сжатие текстур DDS на каждой карте ожидается следующее сжатие:

Текстура Ожидаемое сжатие
baseColorTexture, normalRoughnessColoricTexture BC7

Иммерсивные гарнитуры (VR)

Интерфейсы Windows Смешанная реальность на основе ПК для иммерсивных гарнитур (VR) ожидают, что текстуры будут упакованы с помощью 3-текстурной настройки, используя следующую спецификацию упаковки:

ОС >Windows = 1803

Свойство glTF Текстура Схема упаковки
pbrFxicRoughness baseColorTexture Красный (R), зеленый (G), синий (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessTexture Occlusion (R), Грубость (G), Металлический (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

При сжатие текстур DDS на каждой карте ожидается следующее сжатие:

Текстура Ожидаемое сжатие
normalTexture BC5
baseColorTexture, occlusionRoughnessColoricTexture BC7
ОС <Windows = 1709

Свойство glTF Текстура Схема упаковки
pbrFxicRoughness baseColorTexture Красный (R), зеленый (G), синий (B)
MSFT_packing_occlusionRoughnessMetallic roughnessEanOcclusionTexture Грубость (R), Металлический (G), Occlusion (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

При сжатие текстур DDS на каждой карте ожидается следующее сжатие:

Текстура Ожидаемое сжатие
normalTexture BC5
baseColorTexture, roughnessColoricOcclusionTexture BC7

Добавление loD сетки

Windows MR использует бизнес-диски геометрических узлов для отображения трехмерных моделей на разных уровнях детализации в зависимости от покрытия экрана. Хотя эта функция технически не требуется, рекомендуется использовать все ресурсы. В настоящее время Windows поддерживает 3 уровня детализации. LoD по умолчанию — 0, который представляет наивысшее качество. Другие loD нумеруются последовательно, например 1, 2 и получают постепенно ниже качества. Конвертер активов Windows Смешанная реальность поддерживает создание ресурсов, которые соответствуют этой спецификации LOD, принимая несколько моделей glTF и объединяя их в один ресурс с допустимыми уровнями LOD. В следующей таблице описаны ожидаемые целевые объекты упорядочения loD и треугольника:

Уровень LOD Рекомендуемое число треугольников Максимальное число треугольников
LOD 0 10,000 10,000
LOD 1 5 000 10 000
LOD 2 2500 10,000

При использовании LOD всегда указывается 3 уровня LOD. Отсутствующие LOD-диски вызывают непредвиденное отображение модели, так как система LOD переключается на отсутствующий уровень LOD. glTF 2.0 в настоящее время не поддерживает LOD в рамках основной спецификации. LoDs должны быть определены с помощью расширения MSFT_LOD.

Покрытие экрана

LoD отображаются в Windows Смешанная реальность на основе системы, основанной на значении покрытия экрана, заданном для каждого loD. Объекты, которые в настоящее время используют большую часть пространства экрана, отображаются на более высоком уровне loD. Покрытие экрана не является частью основной спецификации glTF 2.0 и должно быть указано с помощью MSFT_ScreenCoverage в разделе "дополнительные" расширения MSFT_lod.

Уровень LOD Рекомендуемый диапазон Диапазон по умолчанию
LOD 0 100% - 50% 0,5
LOD 1 Менее 50% - 20% 0,2
LOD 2 Менее 20% - 1% 0,01
LOD 4 Менее 1% -

Рекомендации по анимации

Примечание.

Эта функция была добавлена в состав обновления Windows 10 апреля 2018 г. В более старых версиях Windows эти анимации не будут воспроизводиться, однако они по-прежнему загружаются, если они были созданы в соответствии с инструкциями в этой статье.

Дом смешанной реальности поддерживает анимированные объекты glTF на HoloLens и иммерсивные гарнитуры (VR). Если вы хотите активировать анимацию в модели, необходимо использовать расширение карты анимации в формате glTF. Это расширение позволяет активировать анимацию в модели glTF на основе присутствия пользователя в мире, например активировать анимацию, когда пользователь близок к объекту или когда он смотрит на него. Если у объекта glTF есть анимации, но не определяется триггеры анимации, которые не будут воспроизводиться. В приведенном ниже разделе описывается один рабочий процесс для добавления этих триггеров в любой анимированный объект glTF.

Инструменты

Сначала скачайте следующие средства, если у вас еще нет. Эти средства позволяют легко открывать любую модель glTF, просматривать ее, вносить изменения и сохранять обратно в виде glTF или GLB:

  1. Visual Studio Code
  2. Средства glTF для Visual Studio Code

Открытие и просмотр модели

Начните с открытия модели glTF в VSCode, перетащив файл GLTF в окно редактора. Если у вас есть GLB вместо GLTF-файла, вы можете импортировать его в VSCode с помощью надстройки glTF Tools, которую вы скачали. Перейдите в раздел "Вид —> палитра команд", а затем начните вводить "glTF" в палитре команд и выберите "glTF: Импорт из glb", который будет отображать средство выбора файлов для импорта glb с помощью.

После открытия модели glTF вы увидите JSON в окне редактора. Вы также можете просмотреть модель в динамическом трехмерном средстве просмотра, щелкнув правой кнопкой мыши имя файла и выбрав в меню правой кнопкой мыши ярлык команды glTF: Preview 3D Model.

Добавление триггеров

Триггеры анимации добавляются в json модели glTF с помощью расширения карты анимации. Расширение карты анимации открыто описано здесь на сайте GitHub (ПРИМЕЧАНИЕ. ЭТО РАСШИРЕНИЕ ЧЕРНОВИКА). Чтобы добавить расширение в модель, просто прокрутите до конца файла glTF в редакторе и добавьте блок "extensionsUsed" и "extensions" в файл, если они еще не существуют. В разделе extensionsUsed вы добавите ссылку на расширение "EXT_animation_map" и в блоке "расширения" вы добавите сопоставления в анимации в модели.

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

  "extensionsUsed": [
    "EXT_animation_map"
  ],
  "extensions" : {
      "EXT_animation_map" : {
            "bindings": [
                {
                    "semantic": "GAZE",
                    "animations": [0]
                }
            ]
      }
  }

Следующая семантика анимации поддерживается домашней Смешанная реальность Windows.

  • "ALWAYS": постоянно цикличной анимации
  • "HELD": циклически в течение всего времени, когда объект захватывается.
  • "GAZE": циклически при просмотре объекта
  • "PROXIMITY": циклически в то время как средство просмотра находится рядом с объектом
  • "POINTING": циклически, пока пользователь указывает на объект

Сохранение и экспорт

После внесения изменений в модель glTF его можно сохранить непосредственно в виде glTF. Вы также можете щелкнуть правой кнопкой мыши имя файла в редакторе и выбрать "glTF: Экспорт в GLB (двоичный файл)" для экспорта GLB.

Ограничения

Анимации не могут превышать 20 минут и не могут содержать более 36 000 ключевых кадров (20 минут в 30 FPS). Кроме того, при использовании анимации на основе целевых значений на основе морфов не превышает 8192 конечных вершин или меньше. Превышение этих счетчиков приведет к тому, что анимированный ресурс не поддерживается в домашнем Смешанная реальность Windows.

Функция Максимум
Длительность 20 минут.
Ключевые кадры 36 000
Вершины целевых вершин морфов 8192

Заметки о реализации glTF

Windows MR не поддерживает перевернутую геометрию с помощью отрицательных шкал. Геометрия с отрицательными шкалами, скорее всего, приведет к визуальным артефактам.

Ресурс glTF должен указывать на сцену по умолчанию с помощью атрибута сцены для отрисовки Windows MR. Кроме того, загрузчик Windows MR glTF до обновления Windows 10 апреля 2018 г. требует доступа:

  • Должно быть минимальное и максимальное значение.
  • Тип SCALAR должен быть componentType UNSIGNED_SHORT (5123) или UNSIGNED_INT (5125).
  • Тип VEC2 и VEC3 должны быть componentType FLOAT (5126).

Следующие свойства материала используются из спецификации core glTF 2.0, но не требуются:

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture: должен указывать на текстуру, хранящуюся в dds.
  • emissiveTexture: должен указывать на текстуру, хранящуюся в dds.
  • emissiveFactor
  • alphaMode

Следующие свойства материала игнорируются из основной спецификации:

  • Все многопользовательские приложения
  • metalRoughnessTexture: вместо этого следует использовать оптимизированную для Майкрософт упаковку текстур, определенную ниже.
  • normalTexture: вместо этого следует использовать оптимизированную для Майкрософт упаковку текстур, определенную ниже.
  • normalScale
  • occlusionTexture: вместо этого следует использовать оптимизированную для Майкрософт упаковку текстур, определенную ниже.
  • occlusionStrength

Windows MR не поддерживает примитивные линии и точки режима.

Поддерживается только один атрибут вершинЫ UV.

Дополнительные ресурсы

См. также