XRRenderState: baseLayer 屬性

可用性有限

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

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

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

XRRenderState 介面的只讀 **baseLayer** 屬性返回 XRWebGLLayer 例項,該例項是點陣圖影像的來源,並描述了影像如何在裝置中渲染。

此屬性是隻讀的;但是,您可以透過 XRSession.updateRenderState 間接更改其值。

一個 XRWebGLLayer 物件,在渲染場景的每一幀時,它被用作世界內容的來源。

請參閱下面的示例,瞭解如何使用 updateRenderState() 來設定當前用於渲染場景的 XRWebGLLayer

示例

您可以透過呼叫 updateRenderState() 來設定渲染使用的 XRWebGLLayer,如下所示:

js
let canvas = document.querySelector("canvas");
gl = canvas.getContext("webgl", { xrCompatible: true });
setNewWebGLLayer();

function setNewWebGLLayer(gl) {
  if (!gl) {
    /* WebGL not available */
    return;
  }

  xrSession.updateRenderState({
    baseLayer: new XRWebGLLayer(xrSession, gl),
  });
}

在這裡,第一行獲得的 canvas 是 WebGL 將要繪製的 canvas。該上下文被傳遞給 XRWebGLLayer() 以建立一個 XRWebGLLayer,該 XRWebGLLayer 在呈現時使用 WebGL 上下文 gl 的內容作為世界影像的來源。

規範

規範
WebXR Device API
# dom-xrrenderstate-baselayer

瀏覽器相容性