Raytracingでゲームグラフィックスは何が変わるのか。フォーナインズがゲーミンググラス「PLAIDe」(プレイド)を立ち上げた理由とは。Metroidvania!」——世界中のゲーマーを惹きつける“メトロイドヴァニア”の深奥なる魅力あなたの“推し”から今年一年の感謝を贈る。STRANDING」の世界をより理解するための“運び方”ガイド姿の見えない世界中のプレイヤーと緩く助け合う。新マップや追加コンテンツまとめ懐かしのMMORPG体験ツアー第2弾。2019]ティガレックスやバフバロの狩猟に挑戦。REMAKE」の最新映像が公開。Raytracingでゲームグラフィックスは何が変わるのか。2018における大きなトピックの1つだが(関連記事),独立系ゲームデベロッパの中にも早々とDXR対応をアナウンスしたところがある。Entertainment(以下,Remedy)だ。engine」(RemedyのNorthlightエンジンにおけるDXR試用実験)で報告した。Aalto氏だったのだが,空路トラブルで欠席。Puha氏が登壇している。DXR統合版NorthlightでRemedyが制作した技術デモを見てほしい。デモ自体はカメラがシーン内を固定軌道で移動するタイプなので,ちょっと分かりにくいかもしれないが。本稿では,セッションの内容を基に,この技術デモにおける見どころを解説していきたい。DXRアーキテクチャのおさらい筆者は別記事でDXRアーキテクチャの概要をお伝え済みだが,あらためて簡単におさらいしておこう。DXRでは,3Dシーンをボトム(=下位)とトップ(=上位)の2階層に分けて管理する。3Dシーンをボトムとトップで管理。シーンを階層構造で管理するのは,モダンなレイトレーサーでは標準的なアプローチと言えるRemedyが開発した技術デモでは大小さまざまなソファが登場するが,それら3Dモデルのジオメトリデータをまずボトムとして定義することになる。デモ映像のシーンを上から見下ろした,俯瞰のワイヤーフレーム図。本シーンに登場するオブジェクトを赤い四角で囲っているが,これがボトムレベルである実際には,同一モデルのソファが異なる座標に配置されていたり,異なる角度で配置されていたりするが,これらは「同一3Dモデルのインスタンス違い」という扱いになる。Hierarchy」(バウンディングボリューム階層構造,BVH)で括って定義したのがトップだ。このスライドで青い箱がトップレベルを示す。レイとの衝突判定はまずトップレベルの箱単位で行い,ここで衝突が検出されると,より下のレベルでの衝突判定へと移行する流れである視線の延長線上に投げられたレイは,画面上の各ピクセルから放たれて3D空間を突き進むが,このトップBVH構造体に衝突したところでBVHの中にレイを通し,当該BVH内にある3Dモデルのどれと衝突するかを判定することになる。Hit」シェーダを実行するわけだ。どのトップBVH構造体にも衝突しなければレイはこの3Dシーンを突き抜けるので,「何にも衝突しませんでした」という処理を行う「Miss」シェーダを実行することになる。各シェーダの詳細はDXRの概要解説記事を参照してほしい。BVHでグループ分けのようなことをするのは,3D空間内で3Dオブジェクトとレイの衝突判定を効率よく行うためである。シーン内に登場する全オブジェクト1つ1つとの判定をやると処理負荷が高すぎるが,この手法であれば,「そもそも今回のレイと衝突しないのは明白なグループ」を効率よく排除することができるため,処理負荷の軽減につながるのだ。Occlusion,アンビエントオクルージョン)だ。下に示したスライドは,左側が従来のレンダリング手法であるラスタライズ法によるもの,右がレイトレーシング法,すなわちDXRによるものである。アンビエントオクルージョンの描画結果。SSAO)によるものである。SSAOは,3Dシーンの描画を終えた後で深度情報パッファ(=Zバッファ)を探査して,凹んでいる箇所に陰影を付けていく疑似的な陰影付与方法なのだが,かなりいい具合に「陰色」が付いているのが分かるだろう。見ると,奥にある一人掛けのソファや,奥の柱の輪郭では陰影が欠如していたり,本来なら遮蔽によって暗くなるべきプラネタリウム装置の下側が妙に明るくなっていたりするのも分かる。これは,Zバッファの凹凸具合だけ,すなわち2.5D的な概念にのみ則って陰影を付けているからで,実際に3D的な処理を行っているわけでないから起こる弊害だが,いま述べたような問題からDXR版は解放されており,自然だ。手前のソファが床に接地するあたりなど,暗すぎる部分もある。ソファの脚があるあたりには光が入り込んでいるはずなのに,SSAOだとソファの下は一様に暗い。DXR版のほうだと,たとえソファの下であっても,光が入り込んでくる範囲はやや明るくなっており,ソファの中央部に向かって暗くなるグラデーションを確認できる。DXRは完璧かというとそうでもなく,課題もある。それは,DXR版のほうがノイジーだということだ。Occlusion生成用のレイを1ピクセルから4本しか放っていない。それでも,フルHDの全ピクセルである約200万ピクセルからレイを1本放出する,つまり約200万レイを放つごとに5msの負荷がかかるそうだ。pixel,rpp)を1,2,4,16本と切り換えていったときの結果をまとめたものが下のスライドだ。16rppにもなると,かなりSSAOに近い,ノイズの少ない品質に到達している。このときの処理時間は80ms(5ms×16本)になってしまう。60fpsのゲームにおける1フレームあたりの描画時間は約16.67msだから,ここまでやってしまうとさすがに「リアルタイム」とは言えない。各ピクセルから放つレイの数を増やせば品質は上がる。負荷も高まる影生成をDXRベースで行うとどうなるのか続いては影生成だ。Shadow)技法が主流だが,デプスシャドウ技法によって生成する影は,「光源から3Dオブジェクトまでの距離情報」をテクスチャに出力した「シャドウマップ」の解像度によって品質が左右される。Maps)として複数枚確保したりと,いろいろチューニングが大変だったりする。2018におけるRemedyのデモでは,光源となる太陽(=平行光源)に向かって各ピクセルから1本のレイを放っている。Sampling)を行って遮蔽度を算出。その結果を持ち帰って,見合った濃さの影を生成するという処理の流れだ。下に示したスライドの左側は,ラスタライズ法でカスケードシャドウマップを用いたデプスシャドウ技法による描画結果。右側が,DXRによるレイトレーシング法の影生成の描画結果になる。左側が,従来のレンダリング技法であるラスタライズ法ベースでカスケードシャドウマップを用いたデプスシャドウ技法による描画結果。大差ないように見えるが,注目すべき点はやはり多い。Filter)を適用していることもあり,すべての影が一様にボケてしまっている。これはこれで見た目は悪くないものの,物理的には正確ではない。それに対してDXR法のほうだと,椅子の座面に落ちている背もたれの影や,テーブルに置いてある小物の影がシャープだ。現実世界の影は,周囲の環境光の影響,あるいは光源自体に大きさがあることにより,影の投射距離が長くなるとボケが強まる傾向にある。DXR法の影はレイトレーシング法であるがゆえに,投射距離の短い局所的な影は自然とシャープに描画され,長くなればボケ味が強まり,より現実世界に近い影の出方になっているのが分かるだろう。影の投射距離に注意して,こちらのスライドを観察すると,正確性の違いが分かるだろう。一様にボケているのが左のデプスシャドウ法,投射距離に応じてボケ具合が変わっているのが右のDXR法だ負荷としては,フルHDの全ピクセルとなる約200万ピクセルからレイを1本放出するごとに4msずつ掛かるという。シーン内に複数の光源がある場合,光源ごとに影を出そうとすると,その分だけ負荷は倍々ゲームで増加するということだ。局所的な光源は照射範囲が狭いので,光源の数がそのままリニアに負荷を増大させるわけではないが,いずれにせよ,こちらもなかなかの負荷率ではある。映り込みの鏡像表現をDXRベースで行うとどうなるのかPuha氏は,床や水面に生じる「映り込み」などの鏡像を得るための仕組みについても言及している。こちらは,より「レイトレーシング法らしい」特徴が現れるDXRの活用だと言える。レイトレーシングでは,放ったレイが3Dオブジェクトに衝突すると,当該3Dオブジェクトにおいて衝突した材質のライティングやシェーディングを行う処理系が発動する。これを行うのはHitシェーダなどである。......と,一言でまとめるのは簡単だが,これはつまり「3Dオブジェクトのジオメトリ情報」(=ポリゴンデータの集まり)と「テクスチャデータ」,「その他の付随データ」をすべてHitシェーダから参照できるようなデータ管理法が必要になるということだ。12では,そんなレイトレーシング向けのデータバインディングシステムが提供されるという。Breakの開発時から,ライティングやシェーディングに必要なデータ群を3Dオブジェクトごとにひとかたまりで管理する仕組みをNorthlightエンジンで採用していたため,「DXRを使ったライティング&シェーディングシステムへの移行は,それほど大変ではなかった」と,Puha氏は振り返っていた。2018版デモにおける,ある3Dオブジェクトの付随するひとかたまりのデータ群。詳細への言及はなかったが,見た感じ,テクスチャ素材や材質特性パラメータなどのようだそれを踏まえて,今回はツルツルした3Dオブジェクトへの映り込みについて解説してみたい。SSR)で得たものだ。SSRは視点から普通に描画した描画結果フレームから鏡像を生成する,チカラワザのテクニックだ。SSRはその特性上,画面外に存在するオブジェクトや情景を映り込ませることができない。結果,ぱっと見て分かる違いとして,中央の電気スタンドのフードとソルト&ペッパーミル,そしてカトラリースタンド(※ナイフやフォークが入った筒)の鏡像表現に大きな違いが生じている。レイトレーシングによる鏡像を適用した描画結果SSRによる鏡像を適用した描画結果Puha氏はここで2か所に点を打ち,線を引いたが,それを見ると,電気スタンドのフードに本来映り込むべき画面外の情景,そしてカトラリースタンドに本来映り込むべきソルトミルが,DXRによるレイトレーシングによる鏡像だと正しく映り込むのに対して,SSRだとそうではないのが,よりはっきりするだろう。レイトレーシングによる鏡像を適用した描画結果,点と線付きSSRによる鏡像が適用した描画結果,点と点線付き映り込みを正しく表現するためには,電気スタンドフードとカトラリースタンド表面の材質に対してライティングおよびシェーディング処理を行えるだけでなく,視線の反射方向に投射されたレイが視界外の3Dオブジェクト——今回の例で言えば部屋の天井や視点から見たソルトミルの背面側——に衝突して,さらにその表面材質に対するライティングやシェーディング処理も行える必要がある。本段落の冒頭で述べた,さまざまなデータに対してHitシェーダから参照できること,言うならば「データのアクセシビリティ」が重要になるというわけなのだ。セッションでPuha氏は,興味深い要素分解ショットも公開してくれた。放たれたレイが3Dオブジェクトに衝突した場合,衝突した先の3Dオブジェクトが持つさまざまなデータをレイの発射元に持ち帰ることができるわけだが,それらを個別に見たものだ。以下に紹介するの7枚のスクリーンショットはあくまでも「興味深い画像」であって,「映像としての意味」はあまりないので,その点はご注意を。いうわけで順に見ていくと,下に示したのは,「放たれたレイが衝突するまでに旅した距離」を描画したものだ。放ったレイが長い距離を旅したピクセルほど白く,短いほど黒くなる。レイの進行距離を可視化した画面。オブジェクト同士がごちゃごちゃしているところは黒っぽい描画になっている次は,テクスチャの割り当て対応を示すテクスチャ座標(UV)だ。テクスチャの割り当て対応を示すテクスチャ座標を可視化したもの。これは言ってしまえば「素材の色」みたいなもので,主にテクスチャで表すことになる。ディフューズアルベドのみを可視化。視線が反射した延長線上のものをちゃんと持ち帰っているのが分かる続いては,視線の反射方向にある3Dオブジェクトの鏡像を,ライティング済みで持って来たものだ。フレネル反射や,各材質の面の粗さなどは配慮していないため,すべてのオブジェクトがツルツルの鏡でできた世界のような描画になっていて面白い。鏡像をライティング済みで持ち帰ったものフレネル反射の具合を表す「フレネル項」を可視化したものが下のスクリーンショットだ。これは,視線の角度に応じて当該材質自体の「素地の陰影」と鏡像との出方の割合を示したパラメータである。白ければ白いほど鏡像が強く出て,黒っぽければ黒っぽいほど鏡像の影響が弱く,材質自体が持つ素地の陰影が出やすくなる。フレネル項を可視化したもの最後はフレネル反射とライティング結果,鏡像を掛け算で統合したものだ。素材の反射特性がよく分かる。直近に示した2つのスクリーンショットを統合したものPuha氏によれば,「短期間の実装となったため,放ったレイの少なさによるノイジーな描画結果が見えてしまっているが,これが対処すべき課題であることは認識している。解決策も見えている」とのことだった。2018あたりで,アップデート版が出てくるかもしれない。最終出力がこちらゲームグラフィックスの新しい進化が今始まる!?セッションでPuha氏は,事前計算ベースとなる拡散光のみの大局照明システムとDXRベースのアンビエントオクルージョンをNorthlightエンジン上で統合したとき,より自然に見えるチューニングの話題にも触れていたが,Northlightエンジン固有のテーマだったため,本稿では省略する。従来のレンダリング技法であるラスタライズベースの描画と,DXRによるレイトレーシングによる描画との融合をより自然に見せるためには,ゲームエンジン固有のチューニングが必要だというのは伝わってきたことを付記しておきたい。ピクセルあたり1本のレイでライティングすると,たまたまレイの衝突先がハイライト箇所だったりした場合,それが描画結果において支配的に反映されてしまい,蛍の光のような描画が出てしまうこともあるとPuha氏これを避けるために,明るいピクセルに対して複数のレイを投げるようにすると,この不思議な現象(=エラー)を低減できる。TIPSといったところだが,要はこういうチューニングが必要になるわけだDXRの活用が,新しいゲームグラフィックスを実現するための,新しい主流になることはほぼ間違いだろう。同時に,今後のグラフィックスエンジンに「新しいチューニング要素」を誕生させてしまった感も否めないが,そのチューニング周りこそが次世代のゲームグラフィックスにおける見どころになっていくはずで,ユーザー側としては,そうした進化の過程を見ていく楽しみが出てきたとも言える。なにより,GPUに新しい性能強化の方向性を示したとも言え,今後のGPUの戦局にも大きな影響を与えそうで興味深い。XTの気になるところをAMDにアレコレ聞いてみた西川善司の3DGE:現状のレイトレ要素全部入りといわれる新作ゲーム「CONTROL」のグラフィックスの魅力を検証する西川善司の3DGE:赤と緑のケンカ再び。Softwareの新機能をレポート。5700」シリーズの秘密に迫る。ルールブック」レビュー。第7版が何を目指し,何が変わったのかをざっくり解説とあるValveの電子眼鏡:新型VRヘッドセット追加試用レポートレビュー一覧へ新着インタビュースマホ向け最新ゲームなのに,どこか古き良きJRPGの面影を感じさせる。CEOは語る“放置”で育てて戦略バトルに挑む。XTの気になるところをAMDにアレコレ聞いてみた2「スマブラSP」でさらに6体のファイター追加が決定。2021年末までに順次配信3「どうぶつタワーバトル」,ヒットの裏にはなにがあったのか。1月29日配信5「アークナイツ」の国内サービスが本日スタート。忘れずに見たい「今週の公式配信番組」ピックアップ9オープンワールド型RPG「原神」のクローズドβテスター募集が本日スタート。格闘ゲームカードゲームシューティングリズムゲームその他ゲームカタログ本サイト「4Gamer.net」の内容は,すべて無断転載を禁止します。商用利用を除き,リンクについてはその限りではありません。商用利用,二次利用の希望,ご意見などは「こちら」まで。当サイトは,IE11.0以上および解像度1280×1024ドット以上でご覧になることをお勧めいたします。