XRWebGLBinding: createEquirectLayer() 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 createEquirectLayer() Methode des XRWebGLBinding Interfaces gibt ein XREquirectLayer Objekt zurück, welches eine Ebene ist, die equirektangular kodierte Daten auf das Innere einer Kugel abbildet.
Syntax
createEquirectLayer(options)
Parameter
options-
Ein Objekt zur Konfiguration des
XREquirectLayer. Es muss die Eigenschaftenspace,viewPixelHeightundviewPixelWidthhaben.inithat die folgenden Eigenschaften:centralHorizontalAngleOptional-
Eine Zahl, die den zentralen horizontalen Winkel in Radiant der Kugel angibt. Standardwert:
6.28318(2π). colorFormatOptional-
Ein
GLenum, der den Datentyp der Farbtexturdaten definiert. Mögliche Werte:gl.RGBgl.RGBAZusätzlich, für Kontexte mit aktivierterEXT_sRGBErweiterung:ext.SRGB_EXText.SRGB_ALPHA_EXTZusätzlich, fürWebGL2RenderingContextKontexte:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8Zusätzlich, für Kontexte mit aktivierterWEBGL_compressed_texture_etcErweiterung: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 aktivierterWEBGL_compressed_texture_astcErweiterung:Alleder durch die Erweiterung unterstützten Formate. Der Standardwert istgl.RGBA.
depthFormatOptional-
Ein
GLenum, der den Datentyp der Tiefentexturdaten definiert, oder0, um anzugeben, dass die Ebene keine Tiefentextur bereitstellen soll (in diesem Fall wirdXRProjectionLayer.ignoreDepthValuestruesein). Mögliche Werte innerhalb vonWebGLRenderingContextKontexten mit aktivierterWEBGL_depth_textureErweiterung, oder innerhalb vonWebGL2RenderingContextKontexten (keine Erweiterung erforderlich):gl.DEPTH_COMPONENTgl.DEPTH_STENCILZusätzlich, fürWebGL2RenderingContextKontexte:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24Der Standardwert istgl.DEPTH_COMPONENT.
isStaticOptional-
Ein Boolean, 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(eines 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.
lowerVerticalAngleOptional-
Eine Zahl, die den unteren vertikalen Winkel in Radiant der Kugel angibt. Standardwert:
-1.570795(-π/2). mipLevelsOptional-
Eine Zahl, die die gewünschte Anzahl von Mip-Ebenen angibt. Der Standardwert ist
1. radiusOptional-
Eine Zahl, die den Radius der Kugel angibt. Standardwert:
0(unendliche Kugel). spaceErforderlich-
Ein
XRSpaceObjekt, das die räumliche Beziehung der Ebene zur physischen Umgebung des Benutzers definiert. textureTypeOptional-
Ein String, der den Typ der Textur definiert, den 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
XRRigidTransformObjekt, das den Offset und die Orientierung relativ zuspacedefiniert. upperVerticalAngleOptional-
Eine Zahl, die den oberen vertikalen Winkel in Radiant der Kugel angibt. Standardwert:
1.570795(π/2). viewPixelHeightErforderlich-
Eine Zahl, die die Pixelhöhe der Ansichts-Ebene angibt.
viewPixelWidthErforderlich-
Eine Zahl, die die Pixelbreite der Ansichts-Ebene angibt.
Rückgabewert
Ein XREquirectLayer Objekt.
Beispiele
>Erstellen eines XREquirectLayer
Konfigurieren Sie die equirektangulare Ebene mithilfe der oben aufgeführten Eigenschaften in einem Aufruf von createEquirect(). Um Ebenen 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 equirectLayer = xrGlBinding.createEquirectLayer({
space: xrReferenceSpace,
viewPixelWidth: 1200,
viewPixelHeight: 600,
centralHorizontalAngle: 2 * Math.PI,
upperVerticalAngle: Math.PI / 2.0,
lowerVerticalAngle: -Math.PI / 2.0,
radius: 0,
});
xrSession.updateRenderState({
layers: [equirectLayer],
});
}
Spezifikationen
| Specification |
|---|
| WebXR Layers API Level 1> # dom-xrwebglbinding-createequirectlayer> |
Browser-Kompatibilität
Loading…