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
.
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.
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.
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()
.
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