XRWebGLLayer: ignoreDepthValues 属性
只读 XRWebGLLayer
属性 ignoreDepthValues
是一个布尔值,如果会话已配置为在渲染场景时忽略深度缓冲区中的值,则为 true
。如果深度缓冲区用于确定顶点的坐标,则此属性为 false
。
ignoreDepthValues
的值只能在实例化 XRWebGLLayer
时设置,方法是在 构造函数 的 options
参数中设置相应的值。
值
如果 WebGL 上下文的深度缓冲区在计算 3D 世界中点的坐标时使用,则该布尔值为 true
。否则,如果为 true
,则深度缓冲区的值将用于帮助在场景中放置对象。由于 XR 合成器 默认使用深度缓冲区,因此除非在使用构造函数创建 XRWebGLLayer
时明确设置,否则此值为 false
,XRWebGLLayer()
。
使用说明
当 ignoreDepthValues
属性为 false
时,XR 合成器使用深度缓冲区中找到的值(这些值应与场景准确一致),以潜在地提高输出质量或舒适度。
深度缓冲区的宽度为 framebufferWidth
个条目,高度为 framebuffer
个条目。缓冲区中的每个条目都指定了相应像素所在的深度,其值介于 0.0 和 1.0 之间。
深度缓冲区像素值为 0.0 对应于会话的 depthNear
给出的深度,值为 1.0 对应于 depthFar
给出的深度。
深度与每个渲染点的坐标一起,可以更准确地表示 3D 空间中的场景。
示例
如果使用 WeXR 的 Web 应用程序在不使用深度缓冲区的情况下渲染其内容,或者深度缓冲区的内容无效,则应在创建 XRWebGLLayer
时将 ignoreDepthValues
设置为 true,以禁用对 WebXR 渲染使用深度缓冲区。以下代码片段演示了这一点
const glLayerOptions = {
ignoreDepthValues: true,
};
let glLayer = new XRWebGLLayer(xrSession, gl, glLayerOptions);
规范
规范 |
---|
WebXR 设备 API # dom-xrwebgllayer-ignoredepthvalues |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。
另请参阅
- WebXR 设备 API
- 与 WebGL 深度缓冲区相关的函数:
depthFunc()
、clearDepth()