XRWebGLBinding: Methode createProjectionLayer()
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 createProjectionLayer()-Methode des XRWebGLBinding-Interfaces gibt ein XRProjectionLayer-Objekt zurück, das eine Ebene darstellt, die die gesamte Sicht des Beobachters ausfüllt und nahe der nativen Bildrate des Geräts aktualisiert wird.
Syntax
createProjectionLayer(options)
Parameter
options-
Ein Objekt zur Konfiguration des
XRProjectionLayer.textureTypeOptional-
Ein String, der den Texturtyp der Ebene definiert. Mögliche Werte:
texture-
Die Texturen von
XRWebGLSubImagewerden vom Typgl.TEXTURE_2Dsein. texture-array-
Die Texturen von
XRWebGLSubImagewerden vom Typgl.TEXTURE_2D_ARRAYsein (nur WebGL 2-Kontexte). Der Standardwert isttexture.
colorFormatOptional-
Ein
GLenum, das den Datentyp der Farbtexturdaten definiert. Mögliche Werte:gl.RGBgl.RGBAZusätzlich, für Kontexte mit aktivierterEXT_sRGB-Erweiterung:ext.SRGB_EXText.SRGB_ALPHA_EXTZusätzlich, fürWebGL2RenderingContext-Kontexte:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8Der Standardwert istgl.RGBA.
depthFormatOptional-
Ein
GLenum, das den Datentyp der Tiefentexturdaten definiert oder0, was anzeigt, dass die Ebene keine Tiefentextur bereitstellen soll. (In diesem Fall wirdXRProjectionLayer.ignoreDepthValuestruesein.) Mögliche Werte inWebGLRenderingContext-Kontexten mit aktivierterWEBGL_depth_texture-Erweiterung oder inWebGL2RenderingContext-Kontexten (keine Erweiterung erforderlich):gl.DEPTH_COMPONENTgl.DEPTH_STENCILZusätzlich, fürWebGL2RenderingContext-Kontexten:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24Der Standardwert istgl.DEPTH_COMPONENT.
scaleFactorOptional-
Ein Gleitkommawert, der verwendet wird, um die Ebene während der Komposition zu skalieren. Ein Wert von
1.0stellt die Standard-Pixelgröße für den Framebuffer dar. (Siehe auchXRWebGLLayer.getNativeFramebufferScaleFactor().) Im Gegensatz zu anderen Ebenen kann dieXRProjectionLayernicht mit einer expliziten Pixelbreite und -höhe erstellt werden, da die Größe durch die Hardware bestimmt wird. (Projektionsebenen füllen die gesamte Sicht des Beobachters aus.)
Rückgabewert
Ein XRProjectionLayer-Objekt.
Beispiele
>Erstellen einer XRProjectionLayer in einem WebGL 2-Kontext
Die textureType-Option ermöglicht stattdessen die Zuordnung eines Texturarrays, bei dem jedes XRView in eine separate Ebene des Arrays gerendert wird. Dies ermöglicht einige Renderoptimierungen, wie die Nutzung der OVR_multiview2-Erweiterung, die in WebGL 2-Kontexten verfügbar ist.
function onXRSessionStarted(xrSession) {
const glCanvas = document.createElement("canvas");
const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const projectionLayer = xrGlBinding.createProjectionLayer({
textureType: "texture-array",
});
xrSession.updateRenderState({
layers: [projectionLayer],
});
}
Spezifikationen
| Spezifikation |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createprojectionlayer> |