XRWebGLSubImage: colorTexture property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Thuộc tính chỉ đọc colorTexture của giao diện XRWebGLSubImage đại diện cho đối tượng WebGLTexture màu sắc cho XRCompositionLayer để kết xuất.

Giá trị

Một WebGLTexture mờ đục. Xem WebXR opaque textures để biết chi tiết.

Ví dụ

Sử dụng colorTexture

Thuộc tính colorTexture có thể được truyền vào WebGL2RenderingContext.framebufferTextureLayer() để gắn texture màu sắc vào một framebuffer.

js
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const layer = xrGlBinding.createProjectionLayer({
  textureType: "texture-array",
});
const framebuffer = gl.createFramebuffer();

xrSession.updateRenderState({ layers: [layer] });
xrSession.requestAnimationFrame(onXRFrame);

function onXRFrame(time, xrFrame) {
  xrSession.requestAnimationFrame(onXRFrame);

  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  const viewport = xrGlBinding.getSubImage(layer, xrFrame).viewport;
  gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);

  for (const view in xrViewerPose.views) {
    const subImage = xrGlBinding.getViewSubImage(layer, view);
    gl.framebufferTextureLayer(
      gl.FRAMEBUFFER,
      gl.COLOR_ATTACHMENT0,
      subImage.colorTexture,
      0,
      subImage.imageIndex,
    );
    gl.framebufferTextureLayer(
      gl.FRAMEBUFFER,
      gl.DEPTH_ATTACHMENT,
      subImage.depthStencilTexture,
      0,
      subImage.imageIndex,
    );

    // Render from the viewpoint of xrView
  }
}

Thông số kỹ thuật

Specification
WebXR Layers API Level 1
# dom-xrwebglsubimage-colortexture

Tương thích trình duyệt

Xem thêm