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 Depth Sensing 模块
# dom-xrcpudepthinformation-data

浏览器兼容性