XRRenderState: baseLayer 属性

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在某些或所有 支持的浏览器 中可用。

baseLayer 属性是 XRRenderState 接口的只读属性,它返回 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),
  });
}

在这里,第一行获得的画布是 WebGL 将要绘制到的画布。该上下文被传递到 XRWebGLLayer() 中,以创建一个 XRWebGLLayer,它在呈现时使用 WebGL 上下文 gl 的内容作为世界图像的来源。

规范

规范
WebXR 设备 API
# dom-xrrenderstate-baselayer

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。