XRWebGLSubImage: depthStencilTexture property
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.
Thuộc tính chỉ đọc depthStencilTexture của giao diện XRWebGLSubImage đại diện cho đối tượng WebGLTexture độ sâu/stencil cho XRCompositionLayer để kết xuất.
Giá trị
Một WebGLTexture mờ đục. Xem WebXR opaque textures để biết chi tiết.
Sử dụng depthStencilTexture
Thuộc tính depthStencilTexture có thể được truyền vào WebGL2RenderingContext.framebufferTextureLayer() để gắn texture độ sâu 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
| Thông số kỹ thuật |
|---|
| WebXR Layers API Level 1> # dom-xrwebglsubimage-depthstenciltexture> |