UE5環境での反射のバリエーション
UnrealEngine5で現実味のあるフォトリアルなシーンをレンダリングする際には、磨かれた金属や新しいプラスチック、鏡やガラスなどのラフネス値の低いツルツルとしたマテリアルの表面には現実的な反射が映り込んでいる必要があります。
UE5では反射を作成する為のシステムが複数存在しており、品質やリアルタイム描画の際の負荷、反射に映り込ませることが出来る内容などがそれぞれ異なっています。
目的に応じてそれらの機能を使い分けていくために、簡単にUE5で使用できる反射システムについてご紹介します。
Lumen反射
Lumenは主にハイエンドPCなどで利用できる反射システムです。
Lumenにはソフトウェアベースとハードウェアベースのレイトレーシングを利用し、シーンの反射と環境光の影響を表現します。
Lumenはポストプロセスボリュームの反射、およびグローバルイルミネーションの項目で設定することでアクティブにすることが出来ます。
精度などのパラメーターもポストプロセス設定内で調整が可能です。
また、プロジェクトの描画クォリティ設定によっては効果が適用されない場合があります。
プロジェクト設定からハードウェアレイトレーシングを有効にし、ハードウェアレイトレーシングをサポートするNVIDIA GPUを使用している場合は反射の作成にGPU由来のレイトレーシング処理を利用することが出来ます。
同様にポストプロセス設定内で選択できるスクリーンスペースの反射と比べると、より正確で画面に映っている範囲外のオブジェクトも反映した状態の反射を作成することが可能です。Lumenグローバルイルミネーションによる環境光を組み合わせると、リアルタイムで非常に正確でダイナミックな空間を表現することが出来ます。
デメリットとしてはこれからのUEバージョンでは比奨励となっているレイトレーシング反射を除くと、最も処理負荷が高いリアルタイム反射メソッドとなっています。
シーンの複雑さやPCスペックなどによる影響も大きく、画面の激しい動きなどに反射がついてこれないようなケースも発生する可能性もあります。
スクリーンスペース反射
スクリーンスペース反射は主にポストプロセスの段階で処理される、Lumenと比べると比較的低負荷で描画することが出来る反射システムです。
Lumenと同様にポストプロセスの反射の項目から選択・パラメーターの調整を行うことが出来ます。
Lumenと異なり、適用可能な環境が多く、デバイスの自由度が効きやすいのが利点です。
広い鏡面の様な表現をするには違和感のある反射を生み出してしまいますが、反射部分をあまりじっくりを観察されないような前提であれば、Lumenより低負荷で画面全体を写実的に見せることが可能です。
弱点としては、あくまでポストプロセスとしての段階で処理される効果である為、レンダリングされている画面の外のオブジェクト等の画面上で見えないオブジェクトは反射に含まれない為、どうしても画面端のあたりに意識的に観察されたくないようなスポットが発生しがちな点があります。
まだベータ版であるような物や、今後昨日からオミットされるであろうものを除くとポストプロセス設定からのメインで選択できる動的な反射は上記の二つとなります。
リフレクションキャプチャ
リフレクションキャプチャによる反射は反射プローブを設置し、範囲内の領域に対して低負荷の静的な反射を適用することが出来る反射システムです。
SphereReflectionCaptureもしくはBoxReflectionCaptureアクタをシーン上に配置し、エディタのツールバーの「ビルド→反射キャプチャのビルド」を選択して反射内容をキャプチャすることで、アクタから設定できる範囲内に対して、アクタから撮影されたシーンの見た目を反射として適用することが出来ます。
スクリーンスペースの反射ではカバーできないような反射をサポートするような構成も作れますし、複数の反射プローブを設置して範囲を適切に設定すればシーン内を動的に動き回るようなオブジェクトに対して映り込むような反射を低負荷で実現することが出来ます。
また、反射キャプチャの内容をシーン内からキャプチャしてビルドする以外にも、既存のHDRI素材の内容を範囲内に反射として適用するようなことも可能です。
うまく活用すればモバイル環境でもフォトリアルなシーンを作成する際に役立つ反射システムです。
弱点としては反射の内容自体はキャプチャを行った時点での見た目だけが適用されてしまうという点です。
動的に明るさが変わったり、反射に映り込む対象が動き回ったりするような場合は違和感のある結果が生まれてしまう可能性があります。
また、Planar ReflectionアクタはReflectionCapture二種と比べると高い負荷がかかりますが、大きな鏡や水面等の平面での鏡面反射の様な効果が必要な場合に役立つ反射システムです。
プロジェクト設定から平面反射モードを設定する必要がありますが、場合によってはLumenよりも正確に鏡面反射の表現をすることが可能場パターンがあります。
ですがシーン構成によっては高い負荷がかかるので、必要に応じて活用しましょう。
その他
その他にも使いどころが管理限定されますが、場合によっては効果的な反射システムがあります。
ポストプロセス設定内にあるAmbient CubemapはHDRI素材等のキューブマップテクスチャをポストプロセスが適用されている範囲内に対して一律で反射として適用することが可能な効果です。
基本的には他の反射システムを利用する方が効果的ですが、シンプルなモデルビュアーアプリケーションや、新内のライティングが完全に動的に動作するようなシーンで低負荷で補佐的に反射を生成する際などに役立ちます。
その他にもマテリアル内でカメラ角度などを関数で取得して疑似的に反射を表現する等の効果も場合によっては役立ちますが、基本的にはUE標準のLumenやスクリーンスペース反射、リフレクションキャプチャを活用する方がより自然な反射効果を得ることが可能でしょう。
これらの機能を活用してフォトリアルなシーンを作成する際には欠かせない反射効果をより効果的に、目的に応じて作成していきましょう。