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

浏览器兼容性