XR_EXT_spatial_mesh_tracking

Name String

XR_EXT_spatial_mesh_tracking

Тип расширения

Расширение экземпляра

Зарегистрированный добавочный номер

784

Revision

1

Статус ратификации

Не ратифицировано

Зависимости расширений и версий

XR_EXT_spatial_entity

Авторы

Нихав Джайн (Nihav Jain), Google
Натали Флери (Natalie Fleury), Meta
Юичи Тагучи (Yuichi Taguchi), Meta
Рон Бессемс (Ron Bessems), Meta
Инь Ли (Yin Li), Microsoft
Джимми Алампарамбил (Jimmy Alamparambil), ByteDance
Чжипэн Лю (Zhipeng Liu), ByteDance
Цзюнь Янь (Jun Yan), ByteDance

Обзор

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

Возможность отслеживания пространственной сетки

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

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

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

Поддержка среды выполнения

Если среда выполнения поддерживает отслеживание треугольной сетки окружения, она должна указывать на это, перечисляя XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT в xrEnumerateSpatialCapabilitiesEXT .

Среда выполнения, поддерживающая XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT, может иметь три возможности:

  • Среда выполнения поддерживает только отслеживание негерметичных сеток. В этом случае среда выполнения перечисляет XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT в xrEnumerateSpatialCapabilitiesEXT, но не должна перечислять XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT в xrEnumerateSpatialCapabilityFeaturesEXT (см. раздел Отслеживание водонепроницаемой сетки).
  • Среда выполнения поддерживает отслеживание как замкнутых, так и незамкнутых сеток. В этом случае среда выполнения перечисляет XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT в xrEnumerateSpatialCapabilitiesEXT и должна также перечислить XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT в xrEnumerateSpatialCapabilityFeaturesEXT (см. раздел Отслеживание замкнутой сетки), чтобы включить запросы на отслеживание замкнутой сетки из приложения.
  • Среда выполнения поддерживает только отслеживание водонепроницаемой сетки. В этом случае среда выполнения перечисляет XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT в xrEnumerateSpatialCapabilitiesEXT и должна также перечислить XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT в xrEnumerateSpatialCapabilityFeaturesEXT (см. раздел Отслеживание замкнутой сетки), чтобы сообщить приложению, что оно поддерживает отслеживание замкнутой сетки. В этом случае среда выполнения всегда возвращает приложению замкнутую сетку независимо от конфигурации XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT .

Конфигурация

Структура XrSpatialCapabilityConfigurationMeshTrackingEXT определяется следующим образом:

typedef struct XrSpatialCapabilityConfigurationMeshTrackingEXT {
    XrStructureType                     type;
    const void*                         next;
    XrSpatialCapabilityEXT              capability;
    uint32_t                            enabledComponentCount;
    const XrSpatialComponentTypeEXT*    enabledComponents;
} XrSpatialCapabilityConfigurationMeshTrackingEXT;

Описания участников

  • type – это XrStructureType этой структуры.
  • next – это NULL или указатель на следующую структуру в цепочке.
  • capability – это XrSpatialCapabilityEXT, и его значение должно быть XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .
  • enabledComponentCount – это uint32_t, описывающий количество элементов в массиве enabledComponents.
  • enabledComponents – указатель на массив XrSpatialComponentTypeEXT .

Приложения могут включить пространственную функцию XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT, добавив указатель на структуру XrSpatialCapabilityConfigurationMeshTrackingEXT в XrSpatialContextCreateInfoEXT :: capabilityConfigs .

Среда выполнения должна возвращать XR_ERROR_VALIDATION_FAILURE, если capability не равно XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT .

Допустимое использование (неявное)

Отслеживание замкнутой сетки

Структура XrSpatialFeatureTrackWatertightMeshEXT определяется следующим образом:

typedef struct XrSpatialFeatureTrackWatertightMeshEXT {
    XrStructureType    type;
    const void*        next;
    XrBool32           enableWatertightMeshTracking;
} XrSpatialFeatureTrackWatertightMeshEXT;

Описания участников

  • type – это XrStructureType этой структуры.
  • next – это NULL или указатель на следующую структуру в цепочке.
  • enableWatertightMeshTracking указывает, должна ли среда выполнения вычислять водонепроницаемую сетку для отсканированной среды.

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

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

Допустимое использование (неявное)

Процесс подачи заявки

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

Да

Да

Приложению требуется
водонепроницаемая сетка

Приложению требуется…

Да

Да

Нет

Нет

Среда выполнения
поддерживает функцию
отслеживания сетки

Среда выполнения…

Да

Да

Нет

Нет

Среда выполнения
поддерживает функцию
"Отслеживать замкнутую сетку"

Среда выполнения…

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

Приложение создает пространственные…

Приложение обрабатывает отсутствие поддержки функций в текущей среде выполнения

Приложение обрабатывает отсутствие…

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

Приложение обрабатывает транзакцию Текст не является SVG-файлом и не может быть показан

Рисунок 29. Процесс запроса замкнутой сетки в приложении

Гарантированные компоненты

Среда выполнения, поддерживающая XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT, должна предоставлять следующие пространственные компоненты в качестве гарантированных компонентов всех объектов, обнаруженных этой функцией, и должна перечислять их в xrEnumerateSpatialCapabilityComponentTypesEXT :

  • XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXT
  • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
Ограниченный 3D-компонент

Ограниченный 3D-компонент предоставляет центр и границы объекта, на котором он находится. Данные, предоставляемые этим компонентом, упрощают приложениям отбор объектов, находящихся за пределами пирамиды видимости.

Подробнее об ограниченных 3D-моделях…

Компонент "3D-сетка"

Компонент Mesh 3D предоставляет 3D-сетку объекта, на котором он находится. Подробнее о 3D-сетке…

Объемная сегментация (разделение на фрагменты)

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

Сетки соседних объемных блоков могут иметь общие вершины, но треугольники одного объемного блока не должны перекрываться с треугольниками соседнего объема.

Дополнительные компоненты

Нормали сетки

Данные компонента

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT использует для своих данных XrSpatialBufferEXT. XrSpatialBufferEXT :: bufferId представляет буфер, содержащий нормали вершин сетки объекта, на котором находится этот компонент. XrSpatialBufferEXT :: bufferType должен быть XR_SPATIAL_BUFFER_TYPE_VECTOR3F_EXT . Объект, у которого есть свойство XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT, должен также иметь свойство XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Нормали, предоставляемые этим компонентом, должны соответствовать вершинам, указанным в XrSpatialMeshDataEXT :: vertexBuffer компонента XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

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

Структура XrSpatialComponentMesh3DNormalsListEXT определяется следующим образом:

typedef struct XrSpatialComponentMesh3DNormalsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshNormalsCount;
    XrSpatialBufferEXT*    meshNormals;
} XrSpatialComponentMesh3DNormalsListEXT;

Описания участников

  • type – это XrStructureType этой структуры.
  • next – это NULL или указатель на следующую структуру в цепочке. Такие структуры не определены в ядре OpenXR или этом расширении.
  • meshNormalsCount – это uint32_t, описывающий количество элементов в массиве meshNormals.
  • meshNormals – массив объектов XrVector3f .

Среда выполнения должна возвращать XR_ERROR_VALIDATION_FAILURE из xrQuerySpatialComponentDataEXT, если XrSpatialComponentMesh3DNormalsListEXT находится в следующей цепочке XrSpatialComponentDataQueryResultEXT :: next, но XrSpatialComponentDataQueryConditionEXT :: componentTypeCount не равно нулю и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT не включено в XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Среда выполнения должна возвращать XR_ERROR_SIZE_INSUFFICIENT из xrQuerySpatialComponentDataEXT, если meshNormalsCount меньше XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Допустимое использование (неявное)

Конфигурация

Если XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT перечислено в XrSpatialCapabilityComponentTypesEXT :: componentTypes для какой-либо возможности, приложение может включить ее, добавив перечисление в список XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Этот компонент не требует специальной настройки для включения в следующую цепочку XrSpatialCapabilityConfigurationBaseHeaderEXT . Однако мы рекомендуем использовать этот компонент и его данные вместе с компонентом XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT.

Семантические ярлыки сетки

typedef enum XrSpatialMeshSemanticLabelEXT {
    XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT = 1,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT = 2,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT = 3,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT = 4,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT = 5,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT = 6,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT = 7,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT = 8,
    XR_SPATIAL_MESH_SEMANTIC_LABEL_MAX_ENUM_EXT = 0x7FFFFFFF
} XrSpatialMeshSemanticLabelEXT;

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

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

Описание перечисления

XR_SPATIAL_MESH_SEMANTIC_LABEL_UNCATEGORIZED_EXT

Среде выполнения не удалось классифицировать вершину или треугольник.

XR_SPATIAL_MESH_SEMANTIC_LABEL_FLOOR_EXT

Вершина или треугольник сопоставляется с полом.

XR_SPATIAL_MESH_SEMANTIC_LABEL_WALL_EXT

Вершина или треугольник сопоставляется со стеной.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CEILING_EXT

Вершина или треугольник сопоставляется с потолком.

XR_SPATIAL_MESH_SEMANTIC_LABEL_TABLE_EXT

Вершина или треугольник сопоставляется с таблицей.

XR_SPATIAL_MESH_SEMANTIC_LABEL_CHAIR_EXT

Вершина или треугольник сопоставляется со стулом.

XR_SPATIAL_MESH_SEMANTIC_LABEL_SOFA_EXT

Вершина или треугольник сопоставляется с диваном.

XR_SPATIAL_MESH_SEMANTIC_LABEL_BED_EXT

Вершина или треугольник сопоставляется с грядкой.

Семантические ярлыки вершин сетки

Обзор компонентов

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT предоставляет один семантический ярлык для каждой вершины сетки пространственного объекта.

Данные компонента

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT использует для своих данных XrSpatialBufferEXT. XrSpatialBufferEXT :: bufferId представляет буфер, содержащий семантические метки вершин сетки объекта, на котором находится этот компонент. XrSpatialBufferEXT :: bufferType должен быть XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . Значения в буфере соответствуют значениям перечисления XrSpatialMeshSemanticLabelEXT. Объект, у которого есть XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, должен также иметь компонент XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Семантические метки, предоставляемые этим компонентом, должны соответствовать вершинам, указанным в XrSpatialMeshDataEXT :: vertexBuffer компонента XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Это означает, что семантический ярлык с заданным индексом в данных пространственного буфера, предоставляемых этим компонентом, соответствует вершине с тем же индексом, предоставляемой XrSpatialMeshDataEXT :: vertexBuffer . Это также означает, что xrGetSpatialBufferUint8EXT :: bufferCountOutput должно быть тем же значением для буфера семантических меток вершин и XrSpatialMeshDataEXT :: vertexBuffer .

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

Структура XrSpatialComponentMesh3DVertexSemanticLabelsListEXT определяется следующим образом:

typedef struct XrSpatialComponentMesh3DVertexSemanticLabelsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshSemanticLabelsCount;
    XrSpatialBufferEXT*    meshSemanticLabels;
} XrSpatialComponentMesh3DVertexSemanticLabelsListEXT;

Описания участников

  • type – это XrStructureType этой структуры.
  • next – это NULL или указатель на следующую структуру в цепочке. Такие структуры не определены в ядре OpenXR или этом расширении.
  • meshSemanticLabelsCount – это uint32_t, описывающий количество элементов в массиве meshSemanticLabels.
  • meshSemanticLabels – это массив XrSpatialBufferEXT .

Среда выполнения должна возвращать XR_ERROR_VALIDATION_FAILURE из xrQuerySpatialComponentDataEXT, если XrSpatialComponentMesh3DVertexSemanticLabelsListEXT находится в следующей цепочке XrSpatialComponentDataQueryResultEXT :: next, но XrSpatialComponentDataQueryConditionEXT :: componentTypeCount не равно нулю и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT не включено в XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Среда выполнения должна возвращать XR_ERROR_SIZE_INSUFFICIENT из xrQuerySpatialComponentDataEXT, если meshSemanticLabelsCount меньше XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Допустимое использование (неявное)

Конфигурация

Если XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT перечислено в XrSpatialCapabilityComponentTypesEXT :: componentTypes для какой-либо возможности, приложение может включить ее, добавив перечисление в список XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Этот компонент не требует специальной настройки для включения в следующую цепочку XrSpatialCapabilityConfigurationBaseHeaderEXT . Однако мы рекомендуем использовать этот компонент и его данные вместе с компонентом XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Этот компонент нельзя включить вместе с XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT . Если приложение добавляет и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT в XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents, среда выполнения должна возвращать XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Среда выполнения должна также возвращать XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT, если приложение пытается включить оба компонента в отдельных XrSpatialContextEXT .

Семантические ярлыки треугольников сетки

Обзор компонентов

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

Данные компонента

XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT использует для своих данных XrSpatialBufferEXT. XrSpatialBufferEXT :: bufferId представляет буфер, содержащий семантические метки треугольников сетки объекта, на котором находится этот компонент. XrSpatialBufferEXT :: bufferType должен быть XR_SPATIAL_BUFFER_TYPE_UINT8_EXT . Значения в буфере соответствуют значениям перечисления XrSpatialMeshSemanticLabelEXT. Объект, у которого есть XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT, должен также иметь компонент XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Семантические метки, предоставляемые этим компонентом, должны соответствовать треугольникам, предоставляемым в XrSpatialMeshDataEXT компонента XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Количество элементов пространственного буфера, содержащего семантические ярлыки треугольников, равно количеству элементов XrSpatialMeshDataEXT :: indexBuffer, деленному на 3. Это означает, что семантический ярлык с заданным индексом данных пространственного буфера, предоставляемых этим компонентом, соответствует треугольнику, представленному [index * 3], [index * 3 + 1], [index * 3 + 2] в XrSpatialMeshDataEXT :: indexBuffer .

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

Структура XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT определяется следующим образом:

typedef struct XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT {
    XrStructureType        type;
    void*                  next;
    uint32_t               meshSemanticLabelsCount;
    XrSpatialBufferEXT*    meshSemanticLabels;
} XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT;

Описания участников

  • type – это XrStructureType этой структуры.
  • next – это NULL или указатель на следующую структуру в цепочке. Такие структуры не определены в ядре OpenXR или этом расширении.
  • meshSemanticLabelsCount – это uint32_t, описывающий количество элементов в массиве meshSemanticLabels.
  • meshSemanticLabels – это массив XrSpatialBufferEXT .

Среда выполнения должна возвращать XR_ERROR_VALIDATION_FAILURE из xrQuerySpatialComponentDataEXT, если XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT находится в следующей цепочке XrSpatialComponentDataQueryResultEXT :: next, но XrSpatialComponentDataQueryConditionEXT :: componentTypeCount не равно нулю и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT не включено в XrSpatialComponentDataQueryConditionEXT :: componentTypes .

Среда выполнения должна возвращать XR_ERROR_SIZE_INSUFFICIENT из xrQuerySpatialComponentDataEXT, если meshSemanticLabelsCount меньше XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput .

Допустимое использование (неявное)

Конфигурация

Если XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT перечислено в XrSpatialCapabilityComponentTypesEXT :: componentTypes для какой-либо возможности, приложение может включить ее, добавив перечисление в список XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents. Этот компонент не требует специальной настройки для включения в следующую цепочку XrSpatialCapabilityConfigurationBaseHeaderEXT . Однако мы рекомендуем использовать этот компонент и его данные вместе с компонентом XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT. Этот компонент нельзя включить вместе с XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT . Если приложение добавляет и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT, и XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT в XrSpatialCapabilityConfigurationBaseHeaderEXT :: enabledComponents, среда выполнения должна возвращать XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT . Среда выполнения должна также возвращать XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT, если приложение пытается включить оба компонента в отдельных XrSpatialContextEXT .

Новые структуры

Новые перечисления

Новые константы перечисления

  • XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAME
  • XR_EXT_spatial_mesh_tracking_SPEC_VERSION
  • Расширение XrSpatialCapabilityEXT :

    • XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
  • Расширение XrSpatialCapabilityFeatureEXT :

    • XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
  • Расширение XrSpatialComponentTypeEXT :

    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT
    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT
    • XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT
  • Расширение XrStructureType :

    • XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXT
    • XR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXT
    • XR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT

Проблемы

История версий

  • Версия 1, 2 ноября 2025 г. (Нихав Джайн, Google)

    • Описание расширения