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()