XRWebGLLayer:ignoreDepthValues 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

只讀的 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 渲染的深度緩衝區使用。下面的程式碼片段演示了這一點

js
const glLayerOptions = {
  ignoreDepthValues: true,
};

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

規範

規範
WebXR Device API
# dom-xrwebgllayer-ignoredepthvalues

瀏覽器相容性

另見