XRLightProbe

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

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

XRLightProbeWebXR 设备 API的接口,包含用户环境中给定点的照明信息。您可以使用XRSession.requestLightProbe()方法获取XRLighting对象。

此对象本身不包含照明值,但用于为每个XRFrame收集照明状态。有关XRLightProbe的估计照明值,请参阅XRLightEstimate

EventTarget XRLightProbe

实例属性

XRLightProbe.onreflectionchange

reflectionchange事件的事件处理程序属性。

XRLightProbe.probeSpace 只读 实验性

一个XRSpace,跟踪照明估计相对于其的位置和方向。

实例方法

无。

事件

reflectionchange 实验性

每次估计的反射立方体贴图发生变化时都会触发。(当用户四处移动并且环境的照明发生变化时,就会发生这种情况。)

示例

获取会话的XRLightProbe对象

使用XRSession.requestLightProbe()方法获取光探测器。

js
const lightProbe = await xrSession.requestLightProbe();

XRFrame中获取探测器姿态

将光探测器的probeSpace传递给XRFrame.getPose()以获取姿态的光探测器。

js
const probePose = xrFrame.getPose(lightProbe.probeSpace, xrReferenceSpace);

使用reflectionchange事件

传递XRLightProbe以在reflectionchange事件触发时获取反射立方体贴图。另请参阅XRWebGLBinding.getReflectionCubeMap()

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

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

规范

规范
WebXR 照明估计 API 级别 1
# xrlightprobe-interface

浏览器兼容性

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

另请参阅