XRWebGLBinding: createQuadLayer()-Methode
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 createQuadLayer()-Methode der XRWebGLBinding-Schnittstelle gibt ein XRQuadLayer-Objekt zurück, das eine Ebene darstellt, die einen flachen rechteckigen Bereich in der virtuellen Umgebung einnimmt.
Syntax
createQuadLayer(options)
Parameter
options-
Ein Objekt zur Konfiguration des
XRQuadLayer. Es muss die Eigenschaftenspace,viewPixelHeightundviewPixelWidthhaben.inithat die folgenden Eigenschaften:colorFormatOptional-
Ein
GLenum, das den Datentyp der Farbetexturdaten definiert. Mögliche Werte:gl.RGBgl.RGBAZusätzlich, für Kontexte mit derEXT_sRGB-Erweiterung aktiviert:ext.SRGB_EXText.SRGB_ALPHA_EXTZusätzlich, fürWebGL2RenderingContext-Kontexte:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8Zusätzlich, für Kontexte mit derWEBGL_compressed_texture_etc-Erweiterung aktiviert:ext.COMPRESSED_RGB8_ETC2ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_RGBA8_ETC2_EACext.COMPRESSED_SRGB8_ETC2ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EACZusätzlich, für Kontexte mit derWEBGL_compressed_texture_astc-Erweiterung aktiviert:- Alle Formate, die die Erweiterung unterstützt.
Der Standardwert ist
gl.RGBA.
depthFormatOptional-
Ein
GLenum, das den Datentyp der Tiefentexturdaten definiert oder0, was anzeigt, dass die Ebene keine Tiefentextur bereitstellen sollte (in diesem Fall wirdXRProjectionLayer.ignoreDepthValuestruesein). Mögliche Werte innerhalb vonWebGLRenderingContext-Kontexten mit derWEBGL_depth_texture-Erweiterung aktiviert 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.
heightOptional-
Eine Zahl, die die Höhe der Ebene in Metern angibt. Der Standardwert ist
1.0. isStaticOptional-
Ein boolescher Wert, der, wenn wahr, anzeigt, dass Sie nur auf diese Ebene zeichnen können, wenn
needsRedrawtrueist. Der Standardwert istfalse. layoutOptional-
Ein String, der das Layout der Ebene angibt. Mögliche Werte:
default-
Die Ebene berücksichtigt alle Ansichten der Sitzung.
mono-
Ein einzelnes
XRSubImagewird zugewiesen und beiden Augen präsentiert. stereo-
Der Benutzeragent entscheidet, wie er das
XRSubImage(eins oder zwei) zuweist und das Layout (oben/unten oder links/rechts) gestaltet. stereo-left-right-
Ein einzelnes
XRSubImagewird zugewiesen. Das linke Auge erhält den linken Bereich der Textur, das rechte Auge den rechten. stereo-top-bottom-
Ein einzelnes
XRSubImagewird zugewiesen. Das linke Auge erhält den oberen Bereich der Textur, das rechte Auge den unteren. Der Standardwert istmono.
mipLevelsOptional-
Eine Zahl, die die gewünschte Anzahl der Mip-Ebenen angibt. Der Standardwert ist
1. spaceErforderlich-
Ein
XRSpace-Objekt, das die räumliche Beziehung der Ebene zur physischen Umgebung des Nutzers definiert. textureTypeOptional-
Ein String, der die Art der Textur definiert, die die Ebene 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 WebGL 2-Kontexte). Der Standardwert isttexture.
transformOptional-
Ein
XRRigidTransform-Objekt, das den Versatz und die Orientierung relativ zuspacedefiniert. viewPixelHeightErforderlich-
Eine Zahl, die die Pixelhöhe der Ebenenansicht angibt.
viewPixelWidthErforderlich-
Eine Zahl, die die Pixelbreite der Ebenenansicht angibt.
widthOptional-
Eine Zahl, die die Breite der Ebene in Metern angibt. Der Standardwert ist
1.0.
Rückgabewert
Ein XRQuadLayer-Objekt.
Beispiele
>Erstellen eines XRQuadLayer
Konfigurieren Sie das Quad-Layer mithilfe der oben aufgelisteten Eigenschaften in einem Aufruf von createQuadLayer(). Um Layer auf dem XR-Gerät zu präsentieren, fügen Sie sie dem layers-Renderzustand mithilfe von XRSession.updateRenderState() hinzu.
function onXRSessionStarted(xrSession) {
const glCanvas = document.createElement("canvas");
const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const quadLayer = xrGlBinding.createQuadLayer({
space: xrReferenceSpace,
viewPixelHeight: 512,
viewPixelWidth: 512,
transform: new XRRigidTransform({ z: -2 }),
});
xrSession.updateRenderState({
layers: [quadLayer],
});
}
Spezifikationen
| Specification |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createquadlayer> |
Browser-Kompatibilität
Loading…