XRWebGLBinding: Methode createProjectionLayer()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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
| Specification |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createprojectionlayer> |
Browser-Kompatibilität
Loading…