『War Thunder』:レイトレーシング!
2024-11-09 12:00
開発者ブログ
大型アップデート「ファイアバーズ(Firebirds)」の実施と共に『War Thunder』は、レイトレーシング(Ray Tracing)をサポートし、シャドウ、アンビエントオクルージョン、リフレーションといったレイトレーシングによる視覚効果を利用できるようになりました。今回は、その詳細について見ていきます!
どのような機能ですか?
レイトレーシングを利用するためには、いわゆる「BVH(Bounding Volume Hierarchy:バウンディングボリューム階層)」を構築・維持する必要があります。BVHとは、すべてのレイトレーシングによるエフェクトが機能する世界全体の三角形表現です。多くのゲームでは、BVHに含まれる内容や忠実性に関して省略し、詳細度が低いモデルを使用したり、比較的近い距離にあるものをすべて削除したりしています。しかし、そのようなアプローチには代償が伴い、正確な影を表現することができません。
『War Thunder』においては、長期的に幅広いエフェクトを活用できるようにするため、本物を追求することにしました。『War Thunder』では、レイトレーシングによるエフェクトが戦場のほぼ全体で、ゲーム内にレンダリングされるものと同じ忠実性で利用可能なため、それらのすべてエフェクトを物理的に正確かつ緻密に表現することができます。
BVH(Bounding Volume Hierarchy:バウンディングボリューム階層)を構築するプロセスは、可能な限りのCPUスレッドを使用するという代償があるため、最新のCPUを使用することを推奨します。
BVHの準備が整ったため、レイトレーシングが利用可能になり、そこからいくつものエフェクトを体験できます。実装時には、主に3つのエフェクトが見られるようになります。
左側のスクリーンショットには、新しいレイトレーシングによるエフェクトが適用されています。 右側のスクリーンショットには、新しいレイトレーシングによるエフェクトが適用されていません。 |
レイトレーシングによるシャドウマップ(RTSM)
この機能では、テクスチャに基づくシャドウマッピングの代わりに、画面上のすべての点からの光線を太陽の表面にトレースします。太陽の中心点ではなく表面全体を使用するため、影を投影するオブジェクトとの距離に応じて、物理的に正確な半暗部が付いた想像通りの影が表示されます。
その結果は物理的に正しく、ピクセルパーフェクトな太陽からの影です。
ハイエンドGPUを使用している場合は、動的な光源からの影もお試しいただけます。これにより、爆発、発砲炎といった動的な光源から、鮮明でピクセルパーフェクトな影を表示することができます。この機能は多くのパフォーマンスを要求するため、ハイエンドGPUを対象とした機能となっています。
レイトレーシングによるアンビエントオクルージョン(RTAO)
アンビエントオクルージョンは、「空」自体などのような周辺の環境光を遮るオブジェクトの特徴をシミュレーションするために利用される技術であり、一種のアンビエントシャドウです。皆さまのベッドの下が暗いのはこのためです。
従来では、SSAO(Screen Space Ambient Occlusion:スクリーンスペースアンビエントオクルージョン)やGTAO(Ground Truth Ambient Occlusion:グラウンドトゥルースアンビエントオクルージョン)といったようなスクリーンスペースを利用した技術を用いてきました。RTAO(Ray Traced Ambient Occlusion:レイトレーシングによるアンビエントオクルージョン)は、これらスクリーンスペース技術のレイトレーシングを用いたバージョンであり、スクリーンスペース技術でありがちなスクリーンの外にアンビエントシャドウを投影してしまうエラーを修正することができます。スクリーンスペース技術ではそのような問題に対応できませんが、RTAOであれば可能です。アンビエントシャドウを投影するオブジェクトが、別のオブジェクトによって遮られている場合も同様です。通常、こういった場合、本来影が無いはずのところに影か表示されたり、その逆が起きたりしますが、RTAOは、これらの問題をすべて解決します。
レイトレーシングによるリフレクション(RTR)
これは最も複雑な機能です。RTSM(Ray Traced Shadow Map:レイトレーシングによるシャドウマップ)やRTAO(Ray Traced Ambient Occlusion:レイトレーシングによるアンビエントオクルージョン)は、影に関するものですが、RTR(Ray Traced Reflection:レイトレーシングによるリフレクション)では、BVH(Bounding Volume Hierarchy:バウンディングボリューム階層)自体を視覚化します。鏡に映るものが、基本的にBVHの内容であり、私たちはそれをレンダリングされたイメージに限りなく近づけるよう取り組んでいます。
繰り返しになりますが、RTR以前にも、反射は行われていました。プローブに基づく反射やスクリーンスペース反射を用いていましたが、SSAO(Screen Space Ambient Occlusion:スクリーンスペースアンビエントオクルージョン)と同様に、これらにも制限があります。実際、非常に似ています。スクリーンスペースでは画面外や遮蔽されたオブジェクトの処理に問題があり、プローブでは配置の問題があります。一方、RTRは、シーン全体をトレースするため、どの位置からでもオブジェクトを反射させることができます。
RTRには、表面の粗さというもう1つの複雑な点があります。コンクリートのような粗い表面の反射は非常に柔らかくぼやけていますが、ガラスや平らな水のような光沢のある表面の反射は鏡のように鮮明です。さらに、その間にはさまざまなものがあります。実際、これをシミュレートすることは、コンピューターグラフィックスにおける最もホットなトピックの1つです。
私たちは、表面の粗さに応じたノイズを持つ反射をレンダリングし、いわゆる「デノイザー」を用いて物理的に正確な反射を実現するというアプローチをとりました。
鏡のような反射の場合では、その効果は明らかです。
それ以外の場合、その効果はそれほど顕著には出ませんが、レンダリングされたイメージがより正確になり、自然に見えるようになります。これらの画像の兵器と周辺をご覧ください。レイトレーシングを適用しない場合、大空を遮るはずの建物が画面内に表示されていないため、スクリーンスペース技術では空が遮られていることを認識できず、影の中でも光っています。レイトレーシングを適用した場合、BVH(Bounding Volume Hierarchy:バウンディングボリューム階層)にその建物が存在し、画面内に表示されているか否かに関わらず、正しく空を遮ることができ、青みがかった色合いが無くなります。
このように、従来のスクリーンスペース反射やプローブに基づく反射が抱えていた問題を、RTR(Ray Traced Reflection:レイトレーシングによるリフレクション)を用いることで解決することができます。
RTRが持つ副次的な機能として、半透明のガラスの反射があります。半透明のガラスの表面では、利用していたプローブに基づく反射の代わりに、世界における正確な反射を見ることができます。このように、リアルな反射という結果がまた1つもたらされます。
最後に、もう一つの副次的な機能として挙げられるのが、水面の反射です。
現在、ゲーム内では水の反射に平面反射を用いています。この方法は水の反射を非常に正確に表現でき、波に応じて反射を歪められます。一方、RTR(Ray Traced Reflection:レイトレーシングによるリフレクション)を用いた水面の反射では、反射光線が波の法線ベクトルに基づいて正確に放たれます。単に2次元画像を歪めるのではなく、実際にピクセルごとに異なる反射を用いるため、反射自体がより正確になります。
その違いは時には大きく、時には小さくなります。
レイトレーシングのパフォーマンス
レイトレーシングは負荷が重い技術ですが、スケーラビリティに関するオプションが多数用意されており、これにより利用が容易になります。
まず、3つすべてのオプションの有効/無効を個別に切り替えられるため、レイトレーシングに対応する古いGPUをお使いの場合は、最も気になる効果のみを利用することができます。
次に、品質レベルについて説明します。一般的に、RTSM(Ray Traced Shadow Map:レイトレーシングによるシャドウマップ)を動的な光源に適用することは、最新のハイエンドGPU向けの設定です。通常、太陽のみに適用する設定と比べ、それほど負荷は変わりませんが、火炎や爆発が多いアクションの中では、パフォーマンスの要求が著しく増大します。
RTAO(Ray Traced Ambient Occlusion:レイトレーシングによるアンビエントオクルージョン)については、低設定では低い内部解像度を用いて演算が行われます。低いとはいえスクリーンスペース技術と同じ解像度であり、スクリーンスペースによるエラーもありません。中設定では、より高い解像度が用いられ、高設定では、ノイズ除去が向上します。この違いは実際には特定の状況でのみ確認できますが、皆さまにこれを制御していただけるようにしたいと考えました。
RTR(Ray Traced Reflection:レイトレーシングによるリフレクション)の低設定は、良いトレードオフと言えます。反射の中にレイトレーシングによる影はありませんが、速度が大幅に向上します。中設定では、反射の中にレイトレーシングによる影が表示されます。低設定と中設定は、どちらもいわゆる「チェッカーボードレンダリング」を用いて、トレースする光線の数を半分にすることで、2倍のパフォーマンスを実現します。高設定では、この「チェッカーボードレンダリング」を無効化しますが、「デノイザー」がチェッカーボードのパターンをうまく隠すため、違いは小さくなります。繰り返しになりますが、いずれも皆さまの判断次第です。
RTR(Ray Traced Reflection:レイトレーシングによるリフレクション)では、水面と通常の表面の両方をフル解像度でレンダリングするか、または半分の解像度でレンダリングするかを選択することもできます。その違いは主に鏡で確認することができ、強力なGPUをお持ちでない場合でも、半分の解像度で綺麗な見た目を実現できます。
最後に、半透明のガラスの表面でのRTR(Ray Traced Reflection:レイトレーシングによるリフレクション)の設定については、高設定では反射の中にレイトレーシングによる反射を表示することができ、中設定では表示されません。このような表面はゲーム内ではあまり多くないため、この設定が与えるパフォーマンスへの影響はわずかです。
最適化の設定としては、パフォーマンスとクオリティの良いバランスをとることができる中設定のレイトレーシングプリセットを使用することを推奨します。設定を引き上げればエフェクトのクオリティを更に向上させることができますが、パフォーマンスに大きな負荷がかかります。しかし、トップクラスの最新GPUをお持ちであれば、ぜひお試しください!
レイトレーシングによるエフェクトを使用する場合、お使いのGPUに合ったプリセットと共に、DLSS(Deep Learning Super Sampling:ディープラーニングスーパーサンプリング)、FSR(AMD FidelityFX™ Super Resolution)、XeSS(Intel® Arc™- Xe Super Sampling)またはTSR(Temporal super resolution:テンポラルスーパー解像度)などのアップスケーリングを行うアンチエイリアスを使用することもおすすめします。これらのアップスケーラーを用いることで、優れたパフォーマンスとクオリティを両立することができます。プリセット「バランス」は、レイトレーシングに適した中間点ですが、古いGPUでレイトレーシングの恩恵を受けたい場合は、プリセット「パフォーマンス」を選択しても問題ありません。
今後、レイトレーシングの機能をさらに追加するだけでなく、既存の機能のパフォーマンス向上にも努めていますので、今後の最新情報にご注視ください。
『War Thunder』ゲーム内実装時には、Nvidia製グラフィックカードのみ、レイトレーシングを利用できるようになります。AMDとIntelの両方のグラフィックカードでも利用可能にすることは、私たちの優先事項となっています。内部ビルドでは動作することを確認していますが、これらのGPU固有の問題を解決する必要があるため、まだリリースの準備はできていません。最新世代のコンソールと共にまもなく準備が整うでしょう。
The War Thunder Team