反射プローブ(Reflection Probe)

はじめに

Spatial(空間)マテリアル で述べたように、オブジェクトは反射光または拡散光を表示できます。反射プローブは、影響範囲内のオブジェクトの反射光および環境光の光源として使用されます。

このタイプのプローブは、周囲を(一種の360度画像として)キャプチャし、blur のレベルを上げてそのバージョンを保存します。これは、マテリアルの粗さ(roughness)や環境光をシミュレートするために使用されます。

これらのプローブは反射を保存する効率的な方法ですが、いくつかの欠点があります:

  • レンダリングは効率的ですが、計算は負荷がかかります。これが、シーンのロード時にのみキャプチャを行うデフォルトの動作につながっています。
  • 長方形の部屋や場所に最適です。そうでない場合、表示される反射はそれほど忠実ではありません(特にroughnessが0の場合)。

セットアップ

ReflectionProbeノードを作成し、反射させたい領域をラップします:

../../_images/refprobe_setup.png

これにより、即座にローカルに反映されるはずです。 Skyテクスチャを使用している場合、反射はデフォルトでブレンドされます。

デフォルトでは、インテリアでは、反射はあまり一貫性がないように見える場合があります。このシナリオでは、"Box Correct" プロパティにチェックを入れてください。

../../_images/refprobe_box_property.png

この設定は、無限スカイボックスからの反射をプローブのサイズのボックスを反映するように変更します:

../../_images/refprobe_boxcorrect.png

ボックスの壁を調整すると、反射が少し改善される場合がありますが、これを使えばボックス型の部屋なら常に最適に見えます。

プローブは、ギズモの中心から周囲をキャプチャします。何らかの理由で、部屋の形状または内容が中央を塞いでいる場合、中央のハンドルを移動することにより、空の場所に移動できます:

../../_images/refprobe_center_gizmo.png

デフォルトでは、プローブをレンダリングするときにシャドウマッピングは無効になっています(実際のシーンではなく、プローブ内のレンダリングされたイメージでのみ)。これは、パフォーマンスとメモリを節約する簡単な方法です。プローブに影が必要な場合は、Enable Shadow 設定で影のオン/オフを切り替えることができます:

../../_images/refprobe_shadows.png

最後に、反射プローブで一部のオブジェクトをレンダリングしたくない場合があることに留意してください。典型的なシナリオは、部屋の中を動き回る敵です。オブジェクトが反射でレンダリングされないようにするには、Cull Mask 設定を使用します:

../../_images/refprobe_cullmask.png

インテリア対エクステリア

インテリアの設定で反射プローブを使用している場合は、Interior プロパティを有効にすることをお勧めします。これにより、プローブによる空のレンダリングが停止し、カスタムの環境光設定も可能になります。

../../_images/refprobe_ambient.png

プローブが Interior に設定されている場合、プローブごとにカスタムの定常環境光を指定できます。色(Color)とエネルギー(Energy)を選択するだけです。

必要に応じて、Ambient Contributor プロパティを調整することにより、この環境光をプローブの拡散キャプチャとブレンドできます(0.0は純粋な環境色、1.0は純粋な拡散キャプチャを意味します)。

ブレンド

複数の反射プローブを使用できます。Godotは、スマートアルゴリズムを使用して、オーバーラップする場所でそれらをブレンドします:

../../_images/refprobe_blending.png

ご覧のとおり、このブレンドは決して完璧ではありませんが(結局のところ、これらは実際の反射ではなくボックス反射です)、これらのアーティファクトは完全にミラー化された反射を使用する場合にのみ表示されます。通常、シーンには通常のマッピングとさまざまなレベルの粗さ(roughness)があり、これを隠すことができます。

また、反射プローブは、これらの問題を解決するために、スクリーンスペース反射とうまくブレンドされます。これらを組み合わせるとローカル反射がより忠実に見えますが、プローブはスクリーンスペース情報が見つからない場合にのみフォールバックとして使用されます:

../../_images/refprobe_ssr.png

最後に、インテリアとエクステリアの両方を組み合わせたレベルを作成する場合は、インテリアプローブとエクステリアプローブをブレンドすることをお勧めします。ドアの近くでは、プローブは *exterior*(空の反射を得る)としてマークできますが、内部ではプローブをinteriorにすることができます。

反射アトラス(Reflection atlas)

現在のレンダラーの実装では、すべてのプローブは同じサイズであり、Reflection Atlasに適合しています。プローブのサイズと量は、[プロジェクト設定] → [Quality ] → [Reflections]でカスタマイズできます

../../_images/refprobe_atlas.png