ゲームの直接光を影マップからパストレーシングへ切り替えた。カプコンはRE ENGINEを使うResident Evil RequiemとPRAGMATAで、間接光だけでなく直接光にもレイトレーシングを適用している。
直接光まで光線で追う描画経路
カプコンのゲームエンジンRE ENGINEでは、Resident Evil RequiemとPRAGMATAの両方にパストレーシングが導入された。従来、両作品のレイトレーシングは間接光に限られていた。
新しい描画経路では、直接光もパストレーサーが処理し、従来の影マップに代わる。直接光と間接光を同じ描画方式で扱うことが、両作品に共通する変更点だ。
参照用の照明結果をゲーム向け処理へ移す
カプコンのRE ENGINEチームは、まず参照用パストレーサーを開発し、照明や反射光の結果を一般的なデジタルコンテンツ制作向けのパストレーサーと照合した。この結果を基に、リアルタイム環境で動くゲーム用の処理へ規模を調整した。
ゲーム用パストレーサーは、NVIDIAのノイズ除去技術DLSS Ray Reconstructionに合わせて最適化されている。カプコンは、手書きのシェーダーによる方式より高速で安定したノイズ除去が得られると説明する。
切り抜き形状の影を深度比較で処理
切り抜きのある形状に柔らかな影を付ける際、レイが当たるたびに透過判定用のテクスチャを参照すると処理が重くなる。RE ENGINEチームは、この判定にScreenSpaceAlphaTestという軽量な方法を作った。
ScreenSpaceAlphaTestはレイの衝突位置とスクリーン空間の深度を比較し、そのレイを通過させるか決める。各衝突点でのテクスチャ参照を避けながら、切り抜き形状を影の計算に反映するための処理だ。
発光体と屋内の光路を選んでノイズを抑える
発光体からの光を材質側のサンプリングだけで集めると、レイが発光体に当たった場合に寄与が偏り、ノイズが増える。このため発光体には、光源からの寄与を見積もるNext Event Estimation用の専用構造を使う。
環境光が支配的な屋内では、寄与する光路の選択にReSTIR GIを使用する。RE ENGINEチームは既存のRTX Kitの実装を流用せず、公開論文を基にこの処理を独自に実装した。
カットシーンとの差と髪への光の透過
カプコンによると、パストレーシングを常時使うことで、ゲームプレイとカットシーンの見た目の差が大幅に縮まった。従来の影マップでは解像度の制約があり、手作業で影を調整しやすいカットシーンに比べ、ゲームプレイ中の照明品質が損なわれることがあったという。
両作品では、毛束状の髪にもリアルタイムで光が透過する。直接光を含む描画経路の変更は、環境の影だけでなく、キャラクターの髪の見え方にも及んでいる。