XR_EXT_spatial_mesh_tracking
名称字符串
XR_EXT_spatial_mesh_tracking
扩展程序类型
实例扩展程序
已注册的扩展程序编号
784
修订版本
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 用于向应用提供不透水和非不透水网格,具体取决于运行时的功能和应用选择的配置。
不透水网格是指所有尺寸的间隙和未扫描区域都已填充,并在特定体积块内形成紧密网格。顾名思义,如果应用在不透水网格内填充水,则不透水体积内不应有水漏出。使扫描网格不透水通常需要非常高的计算能力,不过一些运行时会通过预先处理网格来抵消该成本。
运行时支持
如果运行时支持跟踪环境的三角形网格,则必须通过在 xrEnumerateSpatialCapabilitiesEXT 中枚举 XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT 来指明这一点。
支持 XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT 的运行时可能具有以下 3 种能力:
- 该运行时仅支持非水密网格跟踪。在这种情况下,运行时会在 xrEnumerateSpatialCapabilitiesEXT 中枚举
XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT,但不得在 xrEnumerateSpatialCapabilityFeaturesEXT 中枚举XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT(请参阅跟踪不透水网格)。 - 该运行时支持水密和非水密网格跟踪。在这种情况下,运行时会在 xrEnumerateSpatialCapabilitiesEXT 中枚举
XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT,并且必须在 xrEnumerateSpatialCapabilityFeaturesEXT 中枚举XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT(请参阅跟踪不透水网格),以便启用来自应用的不透水网格跟踪请求。 - 该运行时仅支持不透水网格跟踪。在这种情况下,运行时会在 xrEnumerateSpatialCapabilitiesEXT 中枚举
XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT,并且必须在 xrEnumerateSpatialCapabilityFeaturesEXT 中枚举XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT(请参阅跟踪不透水网格),以向应用表明它支持不透水网格跟踪。在这种特殊情况下,无论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 数组的指针。
应用可以通过在 XrSpatialContextCreateInfoEXT :: capabilityConfigs 中添加指向 XrSpatialCapabilityConfigurationMeshTrackingEXT 结构的指针来启用 XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT 空间功能。
如果 capability 不是 XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT,则运行时必须返回 XR_ERROR_VALIDATION_FAILURE。
有效用法(隐式)
- 必须先启用
XR_EXT_spatial_mesh_tracking扩展程序,然后才能使用 XrSpatialCapabilityConfigurationMeshTrackingEXT -
type必须为XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXT -
next必须是NULL或指向结构链中下一个结构的有效指针。另请参阅:XrSpatialFeatureTrackWatertightMeshEXT -
capability必须是有效的 XrSpatialCapabilityEXT 值 -
enabledComponents必须是指向包含enabledComponentCount个有效 XrSpatialComponentTypeEXT 值的数组的指针 -
enabledComponentCount参数必须大于0
跟踪封闭网格
XrSpatialFeatureTrackWatertightMeshEXT 结构的定义如下:
typedef struct XrSpatialFeatureTrackWatertightMeshEXT {
XrStructureType type;
const void* next;
XrBool32 enableWatertightMeshTracking;
} XrSpatialFeatureTrackWatertightMeshEXT;
成员说明
type是此结构的 XrStructureType。next是NULL或指向结构链中下一个结构的指针。enableWatertightMeshTracking指示运行时是否必须为扫描的环境计算不透水网格。
支持不透水网格跟踪的运行时必须在 xrEnumerateSpatialCapabilityFeaturesEXT 中枚举 XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT。借助 XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT 功能,应用可以选择启用不透水网格跟踪,并明确选择加入不透水网格生成可能产生的任何额外计算。
如果 XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT 由 xrEnumerateSpatialCapabilityFeaturesEXT 针对某项功能进行枚举,则应用可以将 XrSpatialFeatureTrackWatertightMeshEXT 链接到该功能的相应配置结构,以指明是否希望跟踪的网格不透水。如果应用将 enableWatertightMeshTracking 设置为 XR_TRUE,则运行时必须计算并为应用提供环境的封闭网格。如果应用将 enableWatertightMeshTracking 设置为 XR_FALSE,则跟踪的网格可能仍是封闭的,前提是运行时仅支持封闭网格跟踪,例如,运行时提供来自预扫描环境的处理后网格。
有效用法(隐式)
- 必须先启用
XR_EXT_spatial_mesh_tracking扩展程序,然后才能使用 XrSpatialFeatureTrackWatertightMeshEXT -
type必须为XR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT -
next必须为NULL或指向结构链中下一个结构的有效指针
应用流程
下图展示了应用如何配置空间上下文,以便跟踪环境的封闭网格。
是
是
应用需要
不透水网格
应用需要…
是
是
否
否
运行时
支持“网格跟踪”
功能
运行时…
是
是
否
否
运行时
支持“跟踪不透水网格”
功能
运行时…
应用通过“网格跟踪功能”和“跟踪不透水网格”功能创建空间上下文
应用会创建空间…
应用会处理当前运行时不支持功能的情况
应用会处理缺少…
应用会处理跟踪的网格,以自行创建封闭网格,可能需要用户协助修补网格中的孔洞
应用会处理 tr… 文本不是 SVG - 无法显示
图 29. 请求不透水网格的应用流程
保证型组件
支持 XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT 的运行时必须提供以下空间组件,作为此功能发现的所有实体的保证组件,并且必须在 xrEnumerateSpatialCapabilityComponentTypesEXT 中枚举这些组件:
XR_SPATIAL_COMPONENT_TYPE_BOUNDED_3D_EXTXR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT
有界 3D 组件
有界 3D 组件提供其所在实体的中心和范围。此组件提供的数据使应用可以更轻松地剔除视锥体之外的实体。
如需了解详情,请参阅有界 3D。
网格 3D 组件
网格 3D 组件提供其所在实体的 3D 网格。如需了解详情,请参阅 Mesh 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。此组件提供的法线必须与 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT 组件的 XrSpatialMeshDataEXT :: vertexBuffer 中提供的顶点相对应。
用于查询数据的组件列表结构
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 数组。
如果 XrSpatialComponentMesh3DNormalsListEXT 位于 XrSpatialComponentDataQueryResultEXT :: next 的下一个链中,但 XrSpatialComponentDataQueryConditionEXT :: componentTypeCount 不为零,且 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXT 未包含在 XrSpatialComponentDataQueryConditionEXT :: componentTypes 中,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_VALIDATION_FAILURE。
如果 meshNormalsCount 小于 XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_SIZE_INSUFFICIENT。
有效用法(隐式)
- 必须先启用
XR_EXT_spatial_mesh_tracking扩展程序,然后才能使用 XrSpatialComponentMesh3DNormalsListEXT -
type必须为XR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXT -
next必须为NULL或指向结构链中下一个结构的有效指针 -
meshNormals必须是指向meshNormalsCountXrSpatialBufferEXT 结构数组的指针 -
meshNormalsCount参数必须大于0
配置
如果 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 枚举描述了网格的一组语义标签。不同的空间组件会使用此属性,为 XrSpatialBufferEXT 中每个顶点或每个三角形语义标签的 uint8_t 值赋予含义。请参阅网格顶点语义标签和网格三角形语义标签
如果扩展程序想要扩展此语义标签集或为网格添加自己的新集,应遵循语义标签设计和扩展指南中提供的指南。
枚举说明
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 组件。此组件提供的语义标签必须与 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT 组件的 XrSpatialMeshDataEXT :: vertexBuffer 中提供的顶点相对应。这意味着,此组件提供的空间缓冲区数据中给定索引处的语义标签对应于 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 数组。
如果 XrSpatialComponentMesh3DVertexSemanticLabelsListEXT 位于 XrSpatialComponentDataQueryResultEXT :: next 的下一个链中,但 XrSpatialComponentDataQueryConditionEXT :: componentTypeCount 不为零,且 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT 未包含在 XrSpatialComponentDataQueryConditionEXT :: componentTypes 中,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_VALIDATION_FAILURE。
如果 meshSemanticLabelsCount 小于 XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_SIZE_INSUFFICIENT。
有效用法(隐式)
- 必须先启用
XR_EXT_spatial_mesh_tracking扩展程序,然后才能使用 XrSpatialComponentMesh3DVertexSemanticLabelsListEXT -
type必须为XR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXT -
next必须为NULL或指向结构链中下一个结构的有效指针 -
meshSemanticLabels必须是指向meshSemanticLabelsCountXrSpatialBufferEXT 结构数组的指针 -
meshSemanticLabelsCount参数必须大于0
配置
如果 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。如果应用尝试在单独的 XrSpatialContextEXT 中同时启用这两个组件,则运行时必须返回 XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT。
网格三角形语义标签
组件概览
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 组件。此组件提供的语义标签必须与 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_EXT 组件的 XrSpatialMeshDataEXT 中提供的三角形相对应。包含三角形语义标签的空间缓冲区的元素数量是 XrSpatialMeshDataEXT :: indexBuffer 的元素数量除以 3。这意味着,此组件提供的空间缓冲区数据中给定索引处的语义标签对应于 XrSpatialMeshDataEXT :: indexBuffer 中由 [index * 3]、[index * 3 + 1]、[index * 3 + 2] 表示的三角形。
用于查询数据的组件列表结构
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 数组。
如果 XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT 位于 XrSpatialComponentDataQueryResultEXT :: next 的下一个链中,但 XrSpatialComponentDataQueryConditionEXT :: componentTypeCount 不为零,且 XR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXT 未包含在 XrSpatialComponentDataQueryConditionEXT :: componentTypes 中,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_VALIDATION_FAILURE。
如果 meshSemanticLabelsCount 小于 XrSpatialComponentDataQueryResultEXT :: entityIdCountOutput,则运行时必须从 xrQuerySpatialComponentDataEXT 返回 XR_ERROR_SIZE_INSUFFICIENT。
有效用法(隐式)
- 必须先启用
XR_EXT_spatial_mesh_tracking扩展程序,然后才能使用 XrSpatialComponentMesh3DTriangleSemanticLabelsListEXT -
type必须为XR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXT -
next必须为NULL或指向结构链中下一个结构的有效指针 -
meshSemanticLabels必须是指向meshSemanticLabelsCountXrSpatialBufferEXT 结构数组的指针 -
meshSemanticLabelsCount参数必须大于0
配置
如果 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。如果应用尝试在单独的 XrSpatialContextEXT 中同时启用这两个组件,则运行时必须返回 XR_ERROR_SPATIAL_CAPABILITY_CONFIGURATION_INVALID_EXT。
新结构
新枚举
新枚举常量
XR_EXT_SPATIAL_MESH_TRACKING_EXTENSION_NAMEXR_EXT_spatial_mesh_tracking_SPEC_VERSION-
XR_SPATIAL_CAPABILITY_MESH_TRACKING_EXT
扩展 XrSpatialCapabilityFeatureEXT:
XR_SPATIAL_CAPABILITY_FEATURE_TRACK_WATERTIGHT_MESH_EXT
-
XR_SPATIAL_COMPONENT_TYPE_MESH_3D_NORMALS_EXTXR_SPATIAL_COMPONENT_TYPE_MESH_3D_TRIANGLE_SEMANTIC_LABELS_EXTXR_SPATIAL_COMPONENT_TYPE_MESH_3D_VERTEX_SEMANTIC_LABELS_EXT
扩展 XrStructureType:
XR_TYPE_SPATIAL_CAPABILITY_CONFIGURATION_MESH_TRACKING_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_NORMALS_LIST_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_TRIANGLE_SEMANTIC_LABELS_LIST_EXTXR_TYPE_SPATIAL_COMPONENT_MESH_3D_VERTEX_SEMANTIC_LABELS_LIST_EXTXR_TYPE_SPATIAL_FEATURE_TRACK_WATERTIGHT_MESH_EXT
问题
版本历史记录
修订版 1,2025-11-02(Nihav Jain,Google)
- 初始扩展程序说明