XRLightProbe

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

XRLightProbe 介面是 WebXR 裝置 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 事件

每當 reflectionchange 事件觸發時,將 XRLightProbe 傳遞以獲取反射立方體貼圖。另請參閱 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 Level 1
# xrlightprobe-interface

瀏覽器相容性

另見