XRWebGLBinding: phương thức getSubImage()
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 getSubImage() 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.
Cú pháp
getSubImage(layer, frame)
getSubImage(layer, frame, eye)
Tham số
layer-
XRCompositionLayerđể sử dụng cho kết xuất (có thể là tất cả các loại đối tượngXRCompositionLayerngoại trừXRProjectionLayer, xemXRWebGLBinding.getViewSubImage()để kết xuất lớp chiếu). frame-
Khung
XRFrameđể sử dụng cho kết xuất. eyeOptional-
XRView.eyetùy chọn cho biết mắt của khung nhìn nào cần sử dụng để kết xuất. Các giá trị có thể:
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. - nếu
layerlàXRProjectionLayer. - nếu thuộc tính
layoutcủa lớp làdefault. - nếu thuộc tính
layoutcủa lớp làstereovàeyelànone.
Ví dụ
>Kết xuất một XRQuadLayer
Ví dụ sau kết xuất một XRQuadLayer.
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const quadLayer = xrGlBinding.createQuadLayer({
space: xrReferenceSpace,
viewPixelWidth: 512,
viewPixelHeight: 512,
});
// Đặt cách gốc 2 mét với chiều rộng và chiều cao 1.5 mét
quadLayer.transform = new XRRigidTransform({ z: -2 });
quadLayer.width = 1.5;
quadLayer.height = 1.5;
const framebuffer = gl.createFramebuffer();
xrSession.updateRenderState({ layers: [quadLayer] });
xrSession.requestAnimationFrame(onXRFrame);
function onXRFrame(time, xrFrame) {
xrSession.requestAnimationFrame(onXRFrame);
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
let subImage = xrGlBinding.getSubImage(quadLayer, xrFrame);
gl.framebufferTexture2D(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
subImage.colorTexture,
0,
);
let viewport = subImage.viewport;
gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
// Kết xuất nội dung cho lớp quad
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-getsubimage> |