XRLightProbe

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die XRLightProbe-Schnittstelle der WebXR Device API enthält Beleuchtungsinformationen an einem bestimmten Punkt in der Umgebung des Benutzers. Sie können ein XRLighting-Objekt mithilfe der Methode XRSession.requestLightProbe() erhalten.

Dieses Objekt enthält selbst keine Beleuchtungswerte, wird jedoch verwendet, um Beleuchtungszustände für jedes XRFrame zu sammeln. Siehe XRLightEstimate für die geschätzten Beleuchtungswerte für ein XRLightProbe.

EventTarget XRLightProbe

Instanz-Eigenschaften

XRLightProbe.onreflectionchange

Event-Handler-Eigenschaft für das reflectionchange Ereignis.

XRLightProbe.probeSpace Nur lesbar Experimentell

Ein XRSpace, der die Position und Orientierung verfolgt, zu der die Beleuchtungsschätzungen relativ sind.

Instanz-Methoden

Keine.

Ereignisse

reflectionchange Experimentell

Wird jedes Mal ausgelöst, wenn sich die geschätzte Reflexionswürfelkarte ändert. (Dies geschieht, wenn der Benutzer sich bewegt und sich die Beleuchtung der Umgebung ändert.)

Beispiele

Ein XRLightProbe-Objekt für eine Sitzung erhalten

Verwenden Sie die Methode XRSession.requestLightProbe(), um eine Lichtsonde zu erhalten.

js
const lightProbe = await xrSession.requestLightProbe();

Abrufen einer Sondierungshaltung innerhalb eines XRFrame

Übergeben Sie probeSpace der Lichtsonde an XRFrame.getPose(), um eine Lichtsonde für eine Pose zu erhalten.

js
const probePose = xrFrame.getPose(lightProbe.probeSpace, xrReferenceSpace);

Die Verwendung des reflectionchange-Ereignisses

Verwenden Sie XRLightProbe, um eine Reflexionswürfelkarte zu erhalten, wann immer das reflectionchange Ereignis ausgelöst wird. Siehe auch XRWebGLBinding.getReflectionCubeMap().

js
const glBinding = new XRWebGLBinding(xrSession, gl);
const lightProbe = await xrSession.requestLightProbe();
let glCubeMap = glBinding.getReflectionCubeMap(lightProbe);

lightProbe.addEventListener("reflectionchange", () => {
  glCubeMap = glBinding.getReflectionCubeMap(lightProbe);
});

Spezifikationen

Specification
WebXR Lighting Estimation API Level 1
# xrlightprobe-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch