本日はUnity学習枠です。
UnityではマテリアルからMetallicや、Smoothnessの値を使用することで反射を再現することができます。
しかしデフォルトではスカイボックスは反射されるものの周囲にあるはずのほかのオブジェクトが映りこむことはありません。
これらを軽量な計算で映り込ませる手法としてリフレクションプローブ(ReflectionProbe)があります。
〇リフレクションプローブとは?
リフレクションプローブはUnityのオブジェクトのようにシーンに配置することができ、その地点からの360度画像を保持することでその地点周辺のオブジェクトに対して反射感を提供します。
使用するためにはヒエラルキーウィンドウで右クリック、[Light]から[ReflectionProbe]を選択します。
今回はURPのサンプルシーンを使用しており、このシーンにはもともとリフレクションプローブの設定が行われていましたが、削除しゼロ一で再設定します。
ヒエラルキーウィンドウで作成したリフレクションプローブを選択すると選択している間のみ金属間のある球体が現れます。
これが反射感の確認に使用するオブジェクトです。
反射されるオブジェクトは[Static]なオブジェクトである必要があります。 このオブジェクトはUnityでシーン実行中に動かないオブジェクトに対して設定することができます。
シーン上にはもう一つ、BoxColliderのような黄色いキューブが現れます。
これはこのエリアの中で指定したリフレクションプローブの反射を反映させるというものになります。
このエリアはインスペクターウィンドウから[Size]および[Offset]で大きさと位置を変えることができます。
これを設定することで反射を持つオブジェクトに周囲のオブジェクトが反射されるようになりました。
ただしリフレクションプローブで設定したエリアから反射を行うオブジェクトが出た場合リフレクションプローブの影響を受けなくなります。
このため複数のリフレクションプローブを設定することでオブジェクトが動く範囲での反射を実装できます。
この際にも前述のようにリフレクションプローブはリフレクションプローブのある座標からの全天周囲画像の影響を反射として利用するため、できるだけ反射を行うオブジェクトとリフレクションプローブの座標はあっている必要があります。
本日は以上です。リフレクションプローブは前から存在や効果は知っていたものの本格的に使うのは初めてで、簡単な使い方ですが、絶大な効果で非常に勉強になりました。