XRLightProbe:reflectionchange 事件
WebXR 的 reflectionchange 事件会在估计的反射立方体贴图每次发生变化时触发。这通常发生在用户在不同光照条件下移动,或光照本身发生直接变化时。此事件无法被取消。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("reflectionchange", (event) => { })
onreflectionchange = (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 |
浏览器兼容性
加载中…