XRLightProbe: reflectionchange-Ereignis

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.

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

Das WebXR reflectionchange-Ereignis wird jedes Mal ausgelöst, wenn sich die geschätzte Reflexions-Cube-Map ändert. Dies geschieht als Reaktion auf Bewegungen von Anwendern durch verschiedene Lichtverhältnisse oder auf direkte Änderungen der Beleuchtung selbst. Dieses Ereignis ist nicht abbrechbar.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder setzen Sie eine Ereignishandler-Eigenschaft.

js
addEventListener("reflectionchange", (event) => {});

onreflectionchange = (event) => {};

Ereignistyp

Beispiele

Verwendung des reflectionchange-Ereignisses

Immer wenn das reflectionchange-Ereignis bei einer Lichtsonde ausgelöst wird, können Sie eine aktualisierte Cube-Map abrufen, indem Sie XRWebGLBinding.getReflectionCubeMap() aufrufen. Dies ist weniger aufwändig, als bei jedem XRFrame Beleuchtungsinformationen abzurufen.

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

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

Die onreflectionchange-Ereignishandler-Eigenschaft

Das reflectionchange-Ereignis ist auch über die onreflectionchange-Ereignishandler-Eigenschaft verfügbar.

js
lightProbe.onreflectionchange = (event) => {
  glCubeMap = glBinding.getReflectionCubeMap(lightProbe);
};

Spezifikationen

Specification
WebXR Lighting Estimation API Level 1
# eventdef-xrlightprobe-reflectionchange
WebXR Lighting Estimation API Level 1
# dom-xrlightprobe-onreflectionchange

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch