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,viewPixelHeightundviewPixelWidthaufweisen.inithat die folgenden Eigenschaften:colorFormatOptional-
Ein
GLenum, das den Datentyp der Farbtexturdaten definiert. Mögliche Werte:gl.RGBgl.RGBA(Standard) Zusätzlich für Kontexte mit derEXT_sRGBErweiterung aktiviert:ext.SRGB_EXText.SRGB_ALPHA_EXTZusätzlich fürWebGL2RenderingContextKontexte:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8Zusätzlich für Kontexte mit derWEBGL_compressed_texture_etcErweiterung 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_astcErweiterung aktiviert:- Alle von der Erweiterung unterstützten Formate.
depthFormatOptional-
Ein
GLenum, das den Datentyp der Tiefentexturdaten oder0angibt, was bedeutet, dass die Ebene keine Tiefentextur bereitstellen soll. (In diesem Fall wirdXRProjectionLayer.ignoreDepthValueswahrsein.) Mögliche Werte fürWebGLRenderingContextKontexte mit derWEBGL_depth_textureErweiterung aktiviert, oder fürWebGL2RenderingContextKontexte (keine Erweiterung erforderlich):gl.DEPTH_COMPONENT(Standard)gl.DEPTH_STENCILZusätzlich fürWebGL2RenderingContextKontexte:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24
isStaticOptional-
Ein boolescher Wert, der, wenn wahr, anzeigt, dass Sie nur auf diese Ebene zeichnen können, wenn
needsRedrawwahrist. 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 einzelnesXRSubImagewird 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 einzelnesXRSubImagewird erstellt. Das linke Auge erhält den linken Bereich der Textur, das rechte Auge den rechten.stereo-top-bottom: Ein einzelnesXRSubImagewird erstellt. 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 an Mip-Ebenen angibt. Der Standardwert ist
1. orientationOptional-
Ein
DOMPointReadOnly, der die Orientierung relativ zurspace-Eigenschaft angibt. spaceErforderlich-
Ein
XRSpaceObjekt, das die räumliche Beziehung der Ebene zur physischen Umgebung des Benutzers definiert. viewPixelHeightErforderlich-
Eine Zahl, die die Pixelhöhe der Ebenenansicht angibt.
viewPixelWidthErforderlich-
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
Loading…