XRRenderState: layers 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRRenderState 接口的只读 layers 属性是一个有序数组,包含由 XR 组合器显示的 XRLayer 对象。

一个包含 XRLayer 对象的有序数组。图层的顺序是“从后向前”。

示例

获取渲染状态图层

要读取 WebXR 图层数组,请使用 XRRenderState 上的 layers 属性。可以使用 XRSession.updateRenderState() 方法设置图层。

js
const xrSession = navigator.xr.requestSession("immersive-ar", {
  optionalFeatures: ["layers"],
});

function onXRSessionStarted(xrSession) {
  const glCanvas = document.createElement("canvas");
  const gl = glCanvas.getContext("webgl", { xrCompatible: true });
  const xrGlBinding = new XRWebGLBinding(xrSession, gl);
  const projectionLayer = new XRWebGLLayer(xrSession, gl);
  const quadLayer = xrGlBinding.createQuadLayer({
    pixelWidth: 1024,
    pixelHeight: 1024,
  });

  xrSession.updateRenderState({
    layers: [projectionLayer, quadLayer],
  });

  xrSession.renderState.layers; // [projectionLayer, quadLayer]
}

规范

规范
WebXR Layers API Level 1
# dom-xrrenderstate-layers

浏览器兼容性

另见