XRWebGLBinding: createCubeLayer() 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 createCubeLayer()
Methode der XRWebGLBinding
Schnittstelle gibt ein XRCubeLayer
Objekt zurück, das eine Ebene darstellt, die direkt aus einer Kubenkarten rendert und sie auf den inneren Flächen eines Würfels projiziert.
Syntax
createCubeLayer(init)
Parameter
init
-
Ein Objekt zur Konfiguration des
XRCubeLayer
. Es muss die Eigenschaftenspace
,viewPixelHeight
undviewPixelWidth
aufweisen.init
hat die folgenden Eigenschaften:colorFormat
Optional-
Ein
GLenum
, das den Datentyp der Farbtexturdaten definiert. Mögliche Werte:gl.RGB
gl.RGBA
(Standard) 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 von der Erweiterung unterstützten Formate.
depthFormat
Optional-
Ein
GLenum
, das den Datentyp der Tiefentexturdaten oder0
angibt, was bedeutet, dass die Ebene keine Tiefentextur bereitstellen soll. (In diesem Fall wirdXRProjectionLayer.ignoreDepthValues
wahr
sein.) Mögliche Werte fürWebGLRenderingContext
Kontexte mit derWEBGL_depth_texture
Erweiterung aktiviert, oder fürWebGL2RenderingContext
Kontexte (keine Erweiterung erforderlich):gl.DEPTH_COMPONENT
(Standard)gl.DEPTH_STENCIL
Zusätzlich fürWebGL2RenderingContext
Kontexte:gl.DEPTH_COMPONENT24
gl.DEPTH24_STENCIL24
isStatic
Optional-
Ein boolescher Wert, der, wenn wahr, anzeigt, dass Sie nur auf diese Ebene zeichnen können, wenn
needsRedraw
wahr
ist. Der Standardwert istfalse
. layout
-
Ein String, der die Anordnung der Ebene angibt. Mögliche Werte:
default
: Die Ebene nimmt alle Ansichten der Sitzung auf.mono
: Ein einzelnesXRSubImage
wird erstellt und beiden Augen präsentiert.stereo
: Der User-Agent entscheidet, wie er dieXRSubImage
(eines oder zwei) und das Layout (oben/unten oder links/rechts) zuteilt.stereo-left-right
: Ein einzelnesXRSubImage
wird erstellt. Das linke Auge erhält den linken Bereich der Textur, das rechte Auge den rechten.stereo-top-bottom
: Ein einzelnesXRSubImage
wird erstellt. 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 an Mip-Ebenen angibt. Der Standardwert ist
1
. orientation
Optional-
Ein
DOMPointReadOnly
, der die Orientierung relativ zurspace
-Eigenschaft angibt. space
Erforderlich-
Ein
XRSpace
Objekt, das die räumliche Beziehung der Ebene zur physischen Umgebung des Benutzers definiert. viewPixelHeight
Erforderlich-
Eine Zahl, die die Pixelhöhe der Ebenenansicht angibt.
viewPixelWidth
Erforderlich-
Eine Zahl, die die Pixelbreite der Ebenenansicht angibt.
Rückgabewert
Ein XRCubeLayer
Objekt.
Beispiele
Erstellen eines XRCubeLayer
Konfigurieren Sie die Kubenebene mit den oben aufgeführten Eigenschaften in einem Aufruf von createCubeLayer()
. Um Ebenen auf dem XR-Gerät anzuzeigen, fügen Sie sie dem layers
Renderstatus mit 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 cubeLayer = xrGlBinding.createCubeLayer({
space: xrReferenceSpace,
viewPixelHeight: 512,
viewPixelWidth: 512,
});
xrSession.updateRenderState({
layers: [cubeLayer],
});
}
Spezifikationen
Specification |
---|
WebXR Layers API Level 1 # dom-xrwebglbinding-createcubelayer |
Browser-Kompatibilität
BCD tables only load in the browser