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