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, xemXRWebGLBinding.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,
- nếu
layerkhông có trong mảnglayercủa phiên.
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> |