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 der XRWebGLBinding-Schnittstelle gibt ein XRProjectionLayer-Objekt zurück, welches eine Schicht darstellt, die die gesamte Sicht des Beobachters ausfüllt und annähernd in der nativen Bildwiederholrate des Geräts aktualisiert wird.
Syntax
createProjectionLayer(options)
Parameter
options-
Ein Objekt zur Konfiguration des
XRProjectionLayer.textureTypeOptional-
Ein String, der den Typ der Textur definiert, den die Schicht haben wird. Mögliche Werte:
texture-
Die Texturen von
XRWebGLSubImagewerden vom Typgl.TEXTURE_2Dsein. texture-array-
Die Texturen von
XRWebGLSubImagewerden vom Typgl.TEXTURE_2D_ARRAYsein (nur in WebGL 2 Kontexten). 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 Schicht keine Tiefentextur bereitstellen soll. (In diesem Fall wirdXRProjectionLayer.ignoreDepthValuestruesein.) Mögliche Werte innerhalb vonWebGLRenderingContext-Kontexten mit aktivierterWEBGL_depth_texture-Erweiterung oder innerhalb vonWebGL2RenderingContext-Kontexten (keine Erweiterung erforderlich):gl.DEPTH_COMPONENTgl.DEPTH_STENCILZusätzlich fürWebGL2RenderingContext-Kontexte:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24Der Standardwert istgl.DEPTH_COMPONENT.
scaleFactorOptional-
Ein Gleitkommawert, der verwendet wird, um die Schicht während der Komposition zu skalieren. Ein Wert von
1.0repräsentiert die Standardpixelgröße für den Framepuffer. (Siehe auchXRWebGLLayer.getNativeFramebufferScaleFactor().) Im Gegensatz zu anderen Schichten kann dieXRProjectionLayernicht mit expliziter Pixelbreite und -höhe erstellt werden, da die Größe von der Hardware abgeleitet wird. (Projektschichten füllen die gesamte Sicht des Beobachters aus.)
Rückgabewert
Ein XRProjectionLayer-Objekt.
Beispiele
>Erstellen eines XRProjectionLayer in einem WebGL 2 Kontext
Die textureType-Option ermöglicht es, stattdessen ein Textur-Array zuzuweisen, in dem jede XRView in eine separate Ebene des Arrays gerendert wird. Dies ermöglicht einige Rendering-Optimierungen, wie die Verwendung 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…