連載
西川善司の3DGE:現状のレイトレ要素全部入りといわれる新作ゲーム「CONTROL」のグラフィックスの魅力を検証する
さて,このゲーム,SIGGRAPH 2019でもNVIDIAのMorgan McGuire氏が登壇した「今後のゲームグラフィックスの進化を展望する」主旨の講演(関連記事)の中で,「CONTROLはGeForce RTXから始まったリアルタイムレイトレーシング技術をほどよくオールラウンドに活用したゲームである」として取り上げられたこともあって業界から熱い視線を注がれている。
そこで本稿では,このCONTROLのグラフィックスの見どころを紹介していこうと思う。
今後の定番レイトレフィーチャーとなりそうな3つの要素をすべて実装
2018年3月にMicrosoftがリアルタイムレイトレーシング技術として「DirectX Raytracing」(DXR)を発表し,これに対応した最初のGPUとしてNVIDIAが,同年8月に「Quadro RTX」シリーズ,9月に「GeForce RTX」シリーズを発表した。
その後,同年秋に登場した「Battlefield V」がDXRベースのリアルタイムレイトレーシングの広告塔的なタイトルとなり,さまざまなメディアで取り上げられた。同作では,ツルツルした表面における鏡像生成のためにレイトレーシングを利用し,視界外のゲーム世界が視界内のゲームオブジェクトに映り込んでいる様子をアピールしている。
それまでこうした表現は,事前生成しておいた静的なテクスチャによる環境マップと,レンダリング済みのフレーム内のピクセルをいわば転写するようなイメージの画面座標系ポストエフェクトである「Screen-Space Reflection」(以下,SSR)との組み合わせで実現されることが多かった。
ただし,SSRだけでは,視界外のオブジェクトを映り込ませることはできず,画面外周は映り込みが消失する問題がある。また,ちゃんと映り込んでいるケースでも,その鏡像の整合性はかなり怪しいものであった。対するレイトレーシング技術による鏡像ではそうした問題が起こらない。
Battlefield Vと同じくらいのタイミングで登場した「Shadow of the Tomb Raider」では,直接光による影生成のためにリアルタイムレイトレーシングを利用した。視界内近景のゲーム世界や画面中央の主人公キャラクターに対して,近景に存在するオブジェクトの影生成をレイトレーシングで行うものであった。
年が開けて2019年2月に登場した「Metro Exodus」では,1バウンスの拡散光による大局照明のためにレイトレーシングを利用した。こちらも,視界内のゲーム世界や画面中央の主人公キャラクターに対して,近景の拡散光の伝搬をリアルタイムにレイトレーシングで計算する実装となっていた。
つまり,これら3作では,「表現したい単一のグラフィックス要素」に対してレイトレーシング技術を利用していた感じであった。いうなればワンポイントリリーフ的な活用だったということである。こうなってしまったのは,もともとこれら3作は,リアルタイムレイトレーシング対応前提で開発を進められていたものではなく,急造対応となったからであろう。
対して,今回取り上げるCONTROLは,前出の3タイトルに比べれば比較的開発に時間が取れたためなのだろう,「映り込み鏡像生成」「影生成」「1バウンスの拡散光の大局照明」のすべてに同時対応したものとなっている。
ここからは本作で「レイトレーシングによって実装された3つの表現要素」のそれぞれについて細かく見ていくことにしたい。
CONTROLにおける映り込み鏡像生成
ガラス上への映り込みに注目
CONTROLでは,レイトレーシングを使った映り込み鏡像生成の典型とも言える「視界外の情景が映り込む表現」がそこかしこで普通に行われている。水たまりやツルツルな床に映り込んだ天井方向の情景などはとくに分かりやすい事例だ。
CONTROLでの鏡像生成は,レイトレーシング法の活用としては最も分かりやすい処理系で実装されている。具体的には,着目しているピクセルから,視線の反射方向にレイをキャストし,レイがオブジェクトに衝突した場合は,その部分の色を持って帰って鏡像として描画するだけだ。何にも衝突しない場合は,代わりに事前生成しておいた最遠景の環境マップテクスチャを参照して,その色を持って帰って鏡像とする。
本作では,映り込んだ情景の「粗さ」が,その映り込み面の材質に依存したものになっているところにも注目してほしい。当たり前のことなのだが,水面のようなほぼ完全な鏡面反射をする材質では鮮明な鏡像が出るが,ザラザラとした材質においては歪んだり,ザラっとした鏡像となっている。
このあたりの表現を実際のゲームプレイで動画にしてまとめたのが下のムービーである。
そして,映り込み関係ではRemedyとNVIDIAは「Ray-Traced Translucent Reflections」(リアルタイムレイトレーシングを使った透明材質における反射表現)を「業界初!」と強くアピールしている。
これは,簡単に言えば「ガラス面における映り込み表現」である。
現実世界において透明なガラスは,ガラス越しの情景とガラス面に映り込んだ鏡像の両方が見えるが,こうした情景を本作ではかなり正しく再現できていることを両社はアピールしているのだ。
たしかに,CONTROLのゲーム世界のガラスには,主人公キャラの顔や姿だけでなく,ちゃんとその主人公キャラの背後方向に広がる視界外の室内情景までもが映り込んでいる。しかも,ガラス越しの情景が暗ければ暗いほど鏡像は鮮明に出ており,逆にガラス越しの情景が明るければ鏡像はうっすらとしてちゃんと見にくくなっている。
CONTROLにおける大局照明
間接光で明るくなるだけでなく,遮蔽で暗くなる表現も
RemedyがCONTROLで採用した同社独自のゲームエンジン「Northlight Engine」における大局照明処理では,シーン内に最小で25cm間隔のグリッド状に配置した無数の探査点(プローブ)における全方位放射光を,パストレーシングにて事前計算したデータをもとに処理しているという。
レイトレーシング非対応環境では,グリッド単位の放射光情報を直接読み出してシーン内のオブジェクトをライティングする。この際,シーン内の動的オブジェクトでの遮蔽は考慮せずに描画されることとなる。
一方,レイトレーシング対応環境においても,この事前計算済みの全方位放射光情報を利用して大局照明を行う方針は変わらない。ただ,その実行の際にシーン内の動的オブジェクト間の遮蔽が考慮される。そう,その「シーン内のオブジェクト間の遮蔽調査」にレイトレーシングが用いられるのである。
これだけだとちょっと芸がないので,もう少しレイトレーシングのありがたみが反映されるフィーチャーも盛り込んでいる。
それは,遮蔽関係にあるオブジェクトがとても近い場合は,そのオブジェクトのリアルタイムライティング結果の拡散反射項(Diffuse Term)を回収して大局照明処理に反映させるという処理系だ。グリッド参照の際に複数のレイを一定距離キャストして,オブジェクト同士の遮蔽をある程度考慮するわけだ。
これにより,より大局照明の結果の正確性が増すというのがRemedyの主張である。隣接するオブジェクト同士の色が互いに反映された「いかにも大局照明」的なColor Transmission(色伝搬)効果が得られることになる。いうなれば,局所的な隣接部分に影色っぽい効果を与えるAmbient Occlusion(AO:環境光遮蔽)の「影色(黒色)付与処理」を「相手の3Dオブジェクトの色(≒直接光のライティング結果)の影響も考慮する拡張版AO処理」としたものと考えるとイメージしやすいかもしれない。
事前計算ベースの大局照明は,管理単位が大ざっぱなグリッドとなっているため,不当に明るくなりがちなのだが,本作の場合は,上で述べた処理系の効果で,柔らかい間接光的な表現と,じんわりと暗い遮蔽感が両立できていてとてもリアルである。
以下に示したシーンでは,ベースが同じ事前計算済みの全方位放射光の間接照明データを利用した大局照明なので描画結果のテイストはよく似ているのだが,遮蔽が考慮された間接照明の結果での濃淡のでき方と,隣接するもの同士の色伝搬に違いが出ている。左側の通常レンダリングによる画像と比べると,右側のレイトレーシングを使った状態での画像では,画面左側のノートの表紙にクリーム色の電話機の色が伝搬していることが見て取れるだろう。
CONTROLにおける影生成
微細な凹凸一つ一つにハイディテールな影が
CONTROLの影生成は,多くのゲームで採用されているデプスシャドウ技法(シャドウマップ技法)を主に使用している。レイトレーシング非対応環境では,これをそのままシーン内のすべての影生成に利用するが,レイトレーシング対応環境では,デプスシャドウ技法の影を使用しつつも,一定条件下のオブジェクトの影についてはレイトレーシングによって生成している。
その条件とは「視点から近い位置にあるオブジェクト」というシンプルなもの。つまり,視界内に描かれる影のうち,距離の近いものはレイトレーシングで描画し,遠いものはデプスシャドウ技法の影生成が採択されるということである。
デプスシャドウ技法では,影の解像度がシャドウマップテクスチャ解像度に依存する特性があるので,広大なゲーム世界に存在するすべてのオブジェクトに対し高精度な影を生成することは最初から諦めている。たとえば,人物のシルエット的な影はデプスシャドウ技法で生成できるが,衣服の襟先の影や鼻の穴の中の影は無理だ。ゲームグラフィックスでは,そうした微細な影は,画面座標系のポストエフェクト処理であるSSAOなどで代行することが多い。
それに対してレイトレーシングにおける影生成は,着目しているピクセルから光源に対してレイをキャストして,なにかオブジェクトに衝突したら「そこは影」と判断できるのでピクセル単位での影生成が行える。
本作のレイトレーシング処理では,主人公をはじめとしたキャラクターはもちろん,調度品のセルフシャドウまでがレイトレーシングで生成される。
リアルタイムレイトレーシングに対応したGPUのGeForce RTXシリーズであっても,現実的なゲームプレイが可能なフレームレートでレイトレーシングを行おうとすると,フルHD(1920×1080ピクセル)解像度時に1ピクセルあたりせいぜい2桁台の数のレイをキャストするのが限界だ(関連記事)。当面は,ゲームグラフィックスの全要素をリアルタイムレイトレーシング技術でカバーするのは難しい。その意味ではしばらくの間,CONTROLはリアルタイムレイトレーシングの基準としてみなされることだろう。
実際,冒頭で触れたNVIDIAのMcGuire氏の講演でも,CONTROLをGeForce RTXシリーズが提供するリアルタイムレイトレーシング技術の模範的な活用事例として取り上げていた。
まだ多くのGeForce RTXユーザーは,GeForce RTXのレイトレーシング機能をフル活用できていないと思うので,ぜひともこのCONTROLで自身のGeForce RTXのRTコアに活を入れていただきたい。
(参考)インタラクティブにレイトレーシングのオン/オフを比較できるページ
CONTROLのレイトレーシング効果比較ページ
CONTROLのレイトレーシング効果比較ページ2
- 関連タイトル:
CONTROL
- 関連タイトル:
GeForce RTX 20,GeForce GTX 16
- この記事のURL: