XRLightProbe

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

XRLightProbeWebXR 機器 API のインターフェイスで、ユーザー環境のこの点の照明情報が入ります。 XRLighting オブジェクトは XRSession.requestLightProbe() メソッドを使用して取得することができます。

このオブジェクト自体は照明値を保持しませんが、それぞれの XRFrame の照明状態を収集するために使用します。 XRLightProbe の推定照明値については XRLightEstimate を参照してください。

EventTarget XRLightProbe

インスタンスプロパティ

XRLightProbe.onreflectionchange

reflectionchange イベントのイベントハンドラープロパティです。

XRLightProbe.probeSpace 読取専用 Experimental

照明推定が相対的な位置と方向を追跡する XRSpace です。

インスタンスメソッド

なし。

イベント

reflectionchange Experimental

推定反射立方体マップが変更されるたびに発行されます。(これはユーザーが移動して環境の照明が変化したときに発生します。)

セッションの XRLightProbe オブジェクトの取得

ライトプローブを取得するには、 XRSession.requestLightProbe() メソッドを使用します。

js
const lightProbe = await xrSession.requestLightProbe();

XRFrame 内のプローブ位置姿勢の取得

ライトプローブの probeSpaceXRFrame.getPose() に渡すと、ある位置姿勢のライトプローブを取得します。

js
const probePose = xrFrame.getPose(lightProbe.probeSpace, xrReferenceSpace);

reflectionchange イベントの使用

XRLightProbe を渡して、 reflectionchange イベントが発生するたびに推定反射立方体マップを取得します。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);
});

仕様書

Specification
WebXR Lighting Estimation API Level 1
# xrlightprobe-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報