XRLightProbe:reflectionchange 事件

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表格

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在一些或所有 支持的浏览器 中。

WebXR reflectionchange 事件在每次估计的反射立方体贴图发生变化时触发。这是由于用户在不同的照明条件下移动或直接更改照明本身而引起的。此事件不可取消。

语法

在诸如 addEventListener() 的方法中使用事件名称,或设置事件处理程序属性。

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

onreflectionchange = (event) => {};

事件类型

示例

使用 reflectionchange 事件

每当 reflectionchange 事件在一个光探测器上触发时,您可以通过调用 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 级别 1
# eventdef-xrlightprobe-reflectionchange
WebXR 照明估计 API 级别 1
# dom-xrlightprobe-onreflectionchange

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅