XRLightProbe:reflectionchange 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

WebXR 的 reflectionchange 事件會在估計的反射立方體貼圖每次發生變化時觸發。這通常發生在使用者在不同光照條件下移動,或光照本身發生直接變化時。此事件無法被取消。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onreflectionchange = (event) => { }

事件型別

Event.

示例

使用 reflectionchange 事件

每當 reflectionchange 事件在 light probe 上觸發時,您可以透過呼叫 XRWebGLBinding.getReflectionCubeMap() 來檢索更新後的立方體貼圖。這比在每個 XRFrame 中檢索光照資訊要更高效。

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

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

onreflectionchange 事件處理程式屬性

reflectionchange 事件也可以透過 onreflectionchange 事件處理程式屬性來訪問。

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

規範

規範
WebXR 光照估算 API Level 1
# eventdef-xrlightprobe-reflectionchange
WebXR 光照估算 API Level 1
# dom-xrlightprobe-onreflectionchange

瀏覽器相容性

另見