XRSession: requestLightProbe() 方法

可用性有限

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

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

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRSession 接口的 requestLightProbe() 方法返回一个 Promise,该 Promise 会解析为一个 XRLightProbe 对象,用于估算用户环境中特定点的光照信息。

语法

js
requestLightProbe()
requestLightProbe(options)

参数

options 可选

一个包含配置选项的对象,具体来说是

reflectionFormat

内部反射格式,指示纹理数据的表示方式,可以是 srgba8(默认值)或 rgba16f。另请参阅 XRSession.preferredReflectionFormat

返回值

一个 Promise,该 Promise 会解析为一个 XRLightProbe 对象。

异常

requestLightProbe() 不会抛出真正的异常,而是会使用 DOMException 来拒绝返回的 Promise,具体来说是以下其中一种:

NotSupportedError DOMException

如果在 XRSystem.requestSession() 中未启用 lighting-estimation 功能,或者 reflectionFormat 不是 srgb8preferredReflectionFormat,则抛出此异常。

InvalidStateError DOMException

如果会话已结束,则会抛出此异常。

示例

使用系统首选格式请求光照探针

默认格式是 srgb8,但是,一些渲染引擎可能会使用其他(高动态范围)格式。您可以使用 XRSession.preferredReflectionFormat 来请求光照探针,该属性会报告首选的内部格式。

js
const lightProbe = await xrSession.requestLightProbe({
  reflectionFormat: xrSession.preferredReflectionFormat,
});

规范

规范
WebXR 光照估算 API Level 1
# dom-xrsession-requestlightprobe

浏览器兼容性

另见