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
,viewPixelHeight
undviewPixelWidth
haben.init
hat die folgenden Eigenschaften:colorFormat
Optional-
Ein
GLenum
, das den Datentyp der Farbetexturdaten definiert. Mögliche Werte:gl.RGB
gl.RGBA
Zusätzlich, für Kontexte mit derEXT_sRGB
-Erweiterung aktiviert:ext.SRGB_EXT
ext.SRGB_ALPHA_EXT
Zusätzlich, fürWebGL2RenderingContext
-Kontexte:gl.RGBA8
gl.RGB8
gl.SRGB8
gl.RGB8_ALPHA8
Zusätzlich, für Kontexte mit derWEBGL_compressed_texture_etc
-Erweiterung aktiviert:ext.COMPRESSED_RGB8_ETC2
ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
ext.COMPRESSED_RGBA8_ETC2_EAC
ext.COMPRESSED_SRGB8_ETC2
ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
Zusätzlich, für Kontexte mit derWEBGL_compressed_texture_astc
-Erweiterung aktiviert:- Alle Formate, die die Erweiterung unterstützt.
Der Standardwert ist
gl.RGBA
.
depthFormat
Optional-
Ein
GLenum
, das den Datentyp der Tiefentexturdaten definiert oder0
, was anzeigt, dass die Ebene keine Tiefentextur bereitstellen sollte (in diesem Fall wirdXRProjectionLayer.ignoreDepthValues
true
sein). Mögliche Werte innerhalb vonWebGLRenderingContext
-Kontexten mit derWEBGL_depth_texture
-Erweiterung aktiviert oder innerhalb vonWebGL2RenderingContext
-Kontexten (keine Erweiterung erforderlich):gl.DEPTH_COMPONENT
gl.DEPTH_STENCIL
Zusätzlich, fürWebGL2RenderingContext
-Kontexte:gl.DEPTH_COMPONENT24
gl.DEPTH24_STENCIL24
Der Standardwert istgl.DEPTH_COMPONENT
.
height
Optional-
Eine Zahl, die die Höhe der Ebene in Metern angibt. Der Standardwert ist
1.0
. isStatic
Optional-
Ein boolescher Wert, der, wenn wahr, anzeigt, dass Sie nur auf diese Ebene zeichnen können, wenn
needsRedraw
true
ist. Der Standardwert istfalse
. layout
Optional-
Ein String, der das Layout der Ebene angibt. Mögliche Werte:
default
-
Die Ebene berücksichtigt alle Ansichten der Sitzung.
mono
-
Ein einzelnes
XRSubImage
wird 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
XRSubImage
wird zugewiesen. Das linke Auge erhält den linken Bereich der Textur, das rechte Auge den rechten. stereo-top-bottom
-
Ein einzelnes
XRSubImage
wird zugewiesen. Das linke Auge erhält den oberen Bereich der Textur, das rechte Auge den unteren. Der Standardwert istmono
.
mipLevels
Optional-
Eine Zahl, die die gewünschte Anzahl der Mip-Ebenen angibt. Der Standardwert ist
1
. space
Erforderlich-
Ein
XRSpace
-Objekt, das die räumliche Beziehung der Ebene zur physischen Umgebung des Nutzers definiert. textureType
Optional-
Ein String, der die Art der Textur definiert, die die Ebene haben wird. Mögliche Werte:
texture
-
Die Texturen von
XRWebGLSubImage
werden vom Typgl.TEXTURE_2D
sein. texture-array
-
Die Texturen von
XRWebGLSubImage
werden vom Typgl.TEXTURE_2D_ARRAY
sein (nur WebGL 2-Kontexte). Der Standardwert isttexture
.
transform
Optional-
Ein
XRRigidTransform
-Objekt, das den Versatz und die Orientierung relativ zuspace
definiert. viewPixelHeight
Erforderlich-
Eine Zahl, die die Pixelhöhe der Ebenenansicht angibt.
viewPixelWidth
Erforderlich-
Eine Zahl, die die Pixelbreite der Ebenenansicht angibt.
width
Optional-
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
BCD tables only load in the browser