XRWebGLBinding: phương thức getViewSubImage()

Khả dụng hạn chế

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.

Phương thức getViewSubImage() của giao diện XRWebGLBinding trả về đối tượng XRWebGLSubImage đại diện cho kết cấu WebGL cần kết xuất cho một khung nhìn.

Cú pháp

js
getViewSubImage(layer, view)

Tham số

layer

XRProjectionLayer để sử dụng cho kết xuất (để kết xuất các loại lớp khác, xem XRWebGLBinding.getSubImage()).

view

XRView để sử dụng cho kết xuất.

Giá trị trả về

Đối tượng XRWebGLSubImage.

Ngoại lệ

TypeError được ném ra,

Ví dụ

Kết xuất một XRProjectionLayer

Ví dụ sau kết xuất một XRProjectionLayer cho một khung nhìn.

js
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const layer = xrGlBinding.createProjectionLayer({});
const framebuffer = gl.createFramebuffer();

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

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

  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);

  for (const view in xrViewerPose.views) {
    const subImage = xrGlBinding.getViewSubImage(layer, view);
    gl.framebufferTexture2D(
      gl.FRAMEBUFFER,
      gl.COLOR_ATTACHMENT0,
      gl.TEXTURE_2D,
      subImage.colorTexture,
      0,
    );
    gl.framebufferTexture2D(
      gl.FRAMEBUFFER,
      gl.DEPTH_ATTACHMENT,
      gl.TEXTURE_2D,
      subImage.depthStencilTexture,
      0,
    );
    const viewport = subImage.viewport;
    gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);

    // Kết xuất từ góc nhìn của xrView
  }
}

Thông số kỹ thuật

Thông số kỹ thuật
WebXR Layers API Level 1
# dom-xrwebglbinding-getviewsubimage

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

Xem thêm