XRWebGLBinding:getReflectionCubeMap() 方法

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

getReflectionCubeMap()XRWebGLBinding 接口的方法,它返回一个包含反射立方体贴图纹理的 WebGLTexture 对象。

纹理格式由会话的 reflectionFormat 指定。有关详细信息,请参阅 XRSession.requestLightProbe()XRSession.preferredReflectionFormat 上的 options 参数。默认情况下,使用 srgba8 格式。当使用 rgba16f 格式时,您需要处于 WebGL 2.0 上下文内,或者在 WebGL 1.0 上下文内启用 OES_texture_half_float 扩展。

语法

js
getReflectionCubeMap(lightProbe)

参数

lightProbe

通过调用 XRSession.requestLightProbe() 返回的 XRLightProbe 对象。

返回值

一个 WebGLTexture 对象。

示例

通常,每当光探测器上触发 reflectionchange 事件时,您都会调用 getReflectionCubeMap() 以检索更新的立方体贴图。这比使用每个 XRFrame 检索照明信息更经济。

如果使用 rgba16f 格式,请在 WebGL 1.0 上下文中启用 OES_texture_half_float 扩展。

js
const glBinding = new XRWebGLBinding(xrSession, gl);
gl.getExtension("OES_texture_half_float"); // if rgba16f is the preferredReflectionFormat

xrSession.requestLightProbe().then((lightProbe) => {
  lightProbe.addEventListener("reflectionchange", () => {
    glBinding.getReflectionCubeMap(lightProbe);
  });
});

规范

规范
WebXR 照明估算 API 级别 1
# dom-xrwebglbinding-getreflectioncubemap

浏览器兼容性

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

另请参阅