XRWebGLLayer: XRWebGLLayer()-Konstruktor
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, bevor Sie diese produktiv verwenden.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Der WebXR Device API XRWebGLLayer()
-Konstruktor erstellt und gibt ein neues XRWebGLLayer
-Objekt zurück. Dieses bietet die Verbindung zwischen dem WebXR-Gerät und der WebGL-Grafikschicht, die zur Darstellung der 3D-Szene verwendet wird.
Syntax
new XRWebGLLayer(session, context)
new XRWebGLLayer(session, context, options)
Parameter
session
-
Ein
XRSession
-Objekt, das die WebXR-Session angibt, die mit dem WebGL-Kontext gerendert wird. context
-
Ein
WebGLRenderingContext
oderWebGL2RenderingContext
, der den WebGL-Zeichenkontext identifiziert, der zur Darstellung der Szene für die angegebene WebXR-Session verwendet wird. options
Optional-
Ein Objekt, das Konfigurationsoptionen für das neue
XRWebGLLayer
bereitstellt. Die verfügbaren Optionen sind:alpha
-
Der Farb-Puffer des Framebuffers wird mit einem Alpha-Kanal erstellt, wenn die
alpha
-Boolean-Eigenschafttrue
ist. Andernfalls wird der Farb-Puffer keinen Alpha-Kanal enthalten. Der Standardwert isttrue
. antialias
-
Ein Boolean-Wert, der
true
ist, wenn Anti-Aliasing beim Rendern im Kontext verwendet werden soll; andernfallsfalse
. Der Browser wählt die zu verwendende Anti-Aliasing-Methode aus; es gibt noch keine Unterstützung für die Anforderung eines bestimmten Modus. Der Standardwert isttrue
. depth
-
Ein Boolean-Wert, der, falls
true
, anfordert, dass die neue Ebene einen Tiefenpuffer hat; andernfalls wird kein Tiefenlayer bereitgestellt. Der Standardwert isttrue
. framebufferScaleFactor
-
Ein Gleitkommawert, der zur Skalierung des Bildes während der Komposition verwendet wird, wobei ein Wert von 1.0 die Standardpixelgröße für den Framebuffer darstellt. Die statische
XRWebGLLayer
-FunktionXRWebGLLayer.getNativeFramebufferScaleFactor()
gibt die Skalierung zurück, die zu einem 1:1 Pixelverhältnis führen würde, wodurch sichergestellt wird, dass die Wiedergabe in der nativen Auflösung des Geräts erfolgt. Der Standardwert ist 1.0. ignoreDepthValues
-
Ein Boolean-Wert, der angibt, ob der Inhalt des Tiefenpuffers bei der Komposition der Szene ignoriert werden soll oder nicht. Der Standardwert ist
false
. stencil
-
Ein Boolean-Wert, der, falls
true
, anfordert, dass die neue Ebene einen Stencil-Puffer enthält. Andernfalls wird kein Stencil-Puffer bereitgestellt. Der Standardwert istfalse
.
Rückgabewert
Ein neu erstelltes XRWebGLLayer
, das die angegebene XRSession
mit dem durch context
angegebenen WebGL-Kontext verbindet, der als Renderer für die Session verwendet wird. Alle in layerInit
angegebenen Optionen werden verwendet, um die Konfiguration des Renderingsystems anzupassen.
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, falls das neue
XRWebGLLayer
aufgrund eines der möglichen Zustandsfehler nicht erstellt werden konnte:- Die durch
session
angegebeneXRSession
wurde bereits gestoppt. - Der angegebene WebGL-Kontext,
context
, wurde verloren aus irgendeinem Grund, wie z. B. einem GPU-Wechsel oder -Reset. - Die angegebene
session
ist immersiv, aber dercontext
ist nicht WebXR-kompatibel.
- Die durch
OperationError
DOMException
-
Wird ausgelöst, falls die für den Betrieb der Ebene benötigten Ressourcen (einschließlich Speicherpuffer) nicht zugewiesen werden konnten.
Beispiele
In diesem Beispiel wird ein neues XRWebGLLayer
für eine WebXR-Session, xrSession
, erstellt.
xrSession.updateRenderState({
baseLayer: new XRWebGLLayer(xrSession, gl, {
alpha: false,
antialias: false,
depth: false,
framebufferScaleFactor: 0.5,
ignoreDepthValues: true,
stencil: false,
}),
});
Spezifikationen
Specification |
---|
WebXR Device API # dom-xrwebgllayer-xrwebgllayer |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- WebXR Device API
- Erste Schritte mit WebGL
- Umgang mit verlorenem Kontext in WebGL: Khronos WebGL wiki