XRWebGLBinding: getReflectionCubeMap() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

XRWebGLBinding 接口的 getReflectionCubeMap() 方法返回一个包含反射立方体贴图纹理的 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 Level 1
# dom-xrwebglbinding-getreflectioncubemap

浏览器兼容性

另见