XRLightProbe: reflectionchange イベント

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

WebXR の reflectionchange イベントは、推定反射立方体のマップが変更されるたびに発生します。これは、異なる照明条件での使用や、照明自体の直接的な変更に応じて発生します。このイベントはキャンセル不可です。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("reflectionchange", (event) => {});

onreflectionchange = (event) => {};

イベント型

Event です。

reflectionchange イベントの使用

照明に関する reflectionchange イベントが発生するたびに、XRWebGLBinding.getReflectionCubeMap() (en-US) を呼び出すことで、更新された立方体マップを取得することができます。この方法は、 XRFrame (en-US) ごとに照明情報を取得するよりもコストがかかりません。

js
const glBinding = new XRWebGLBinding(xrSession, gl);
const lightProbe = await xrSession.requestLightProbe();
let glCubeMap = glBinding.getReflectionCubeMap(lightProbe);

lightProbe.addEventListener("reflectionchange", () => {
  glCubeMap = glBinding.getReflectionCubeMap(lightProbe);
});

onreflectionchange イベントハンドラープロパティ

reflectionchange イベントは onreflectionchange イベントハンドラープロパティを使用しても利用できます。

js
lightProbe.onreflectionchange = (event) => {
  glCubeMap = glBinding.getReflectionCubeMap(lightProbe);
};

仕様書

Specification
WebXR Lighting Estimation API Level 1
# eventdef-xrlightprobe-reflectionchange
WebXR Lighting Estimation API Level 1
# dom-xrlightprobe-onreflectionchange

ブラウザーの互換性

BCD tables only load in the browser

関連情報