XRSession: depthDataFormat 属性

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

安全上下文: 仅在 安全上下文 (HTTPS) 中,某些或所有 支持的浏览器 中提供此功能。

immersive-ar XRSession只读 depthDataFormat 属性描述使用哪种深度传感数据格式。

此属性可以返回以下值

luminance-alpha

2 字节无符号整数数据缓冲区 (LUMINANCE_ALPHA GLEnum)。CPU 使用情况:将 XRCPUDepthInformation.data 解释为 Uint8Array。GPU 使用情况:检查亮度和 Alpha 通道以重新组合单个值。

float32

4 字节浮点数据缓冲区 (R32F GLEnum)。CPU 使用情况:将 XRCPUDepthInformation.data 解释为 Float32Array。GPU 使用情况:检查红色通道并使用该值。

示例

要请求所需的数据格式,您需要在使用 XRSystem.requestSession() 请求会话时指定 dataFormatPreference。在这里,调用者能够处理 "luminance-alpha" 和 "float32" 格式。顺序表示对 "luminance-alpha" 的偏好

js
navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["depth-sensing"],
  depthSensing: {
    usagePreference: ["cpu-optimized", "gpu-optimized"],
    formatPreference: ["luminance-alpha", "float32"],
  },
});

要检查用户代理选择了哪种数据格式,您可以调用 depthDataFormat 属性

js
console.log(session.depthDataFormat); // either "luminance-alpha" or "float32"

规范

规范
WebXR 深度传感模块
# dom-xrsession-depthdataformat

浏览器兼容性

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