XRWebGLLayer: ignoreDepthValues 属性

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

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在部分或所有 支持的浏览器 中可用。

只读 XRWebGLLayer 属性 ignoreDepthValues 是一个布尔值,如果会话已配置为在渲染场景时忽略深度缓冲区中的值,则为 true。如果深度缓冲区用于确定顶点的坐标,则此属性为 false

ignoreDepthValues 的值只能在实例化 XRWebGLLayer 时设置,方法是在 构造函数options 参数中设置相应的值。

如果 WebGL 上下文的深度缓冲区在计算 3D 世界中点的坐标时使用,则该布尔值为 true。否则,如果为 true,则深度缓冲区的值将用于帮助在场景中放置对象。由于 XR 合成器 默认使用深度缓冲区,因此除非在使用构造函数创建 XRWebGLLayer 时明确设置,否则此值为 falseXRWebGLLayer()

使用说明

ignoreDepthValues 属性为 false 时,XR 合成器使用深度缓冲区中找到的值(这些值应与场景准确一致),以潜在地提高输出质量或舒适度。

深度缓冲区的宽度为 framebufferWidth 个条目,高度为 framebuffer 个条目。缓冲区中的每个条目都指定了相应像素所在的深度,其值介于 0.0 和 1.0 之间。

深度缓冲区像素值为 0.0 对应于会话的 depthNear 给出的深度,值为 1.0 对应于 depthFar 给出的深度。

深度与每个渲染点的坐标一起,可以更准确地表示 3D 空间中的场景。

示例

如果使用 WeXR 的 Web 应用程序在不使用深度缓冲区的情况下渲染其内容,或者深度缓冲区的内容无效,则应在创建 XRWebGLLayer 时将 ignoreDepthValues 设置为 true,以禁用对 WebXR 渲染使用深度缓冲区。以下代码片段演示了这一点

js
const glLayerOptions = {
  ignoreDepthValues: true,
};

let glLayer = new XRWebGLLayer(xrSession, gl, glLayerOptions);

规范

规范
WebXR 设备 API
# dom-xrwebgllayer-ignoredepthvalues

浏览器兼容性

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

另请参阅