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 |
浏览器兼容性
加载中…