XRCPUDepthInformation: data 属性

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

XRCPUDepthInformation 接口的只读data属性是一个 ArrayBuffer,其中包含以原始格式存储的深度缓冲区信息。

数据以行主序格式存储,没有填充,每个条目对应于从视图的近平面到用户环境的距离,单位未指定。每个数据条目的大小和类型由 depthDataFormat 确定。可以通过将这些值乘以 rawValueToMeters 将其从未指定的单位转换为米。可以使用 normDepthBufferFromNormView 属性从标准化视图坐标(视图左上角的原点,X 轴向右增长,Y 轴向下增长)转换为深度缓冲区的坐标系。

一个 ArrayBuffer

示例

使用 XRFrame.getDepthInformation() 获取深度信息。返回的 XRCPUDepthInformation 对象将包含 data 缓冲区。

对于 CPU 深度信息和格式为“亮度-alpha”的缓冲区

js
const uint16 = new Uint16Array(depthInfo.data);
const index = column + row * depthInfo.width;
const depthInMeters = uint16[index] * depthInfo.rawValueToMeters;

(对于“float32”数据格式,请使用 Float32Array。)

请注意,以米为单位的深度位于深度缓冲区坐标中。需要额外的步骤将其转换为标准化视图坐标,或者可以使用 XRCPUDepthInformation.getDepthInMeters() 方法。

规范

规范
WebXR 深度感应模块
# dom-xrcpudepthinformation-data

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。