XRWebGLSubImage: Eigenschaft colorTexture
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die schreibgeschützte colorTexture-Eigenschaft der XRWebGLSubImage-Schnittstelle repräsentiert das Farb-WebGLTexture-Objekt für die XRCompositionLayer zur Wiedergabe.
Wert
Ein undurchsichtiges WebGLTexture. Siehe undurchsichtige WebXR-Texturen für Details.
Beispiele
>Verwendung von colorTexture
Die colorTexture-Eigenschaft kann an WebGL2RenderingContext.framebufferTextureLayer() übergeben werden, um die Farbtextur an einen Framebuffer anzuhängen.
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
}
}
Spezifikationen
| Spezifikation |
|---|
| WebXR Layers API Level 1> # dom-xrwebglsubimage-colortexture> |