西川 善司
3Dコンピュータグラフィックスの計算処理方法である「レイトーシング」がどのような技術なのか、ゲームグラフィックスにどのような変化をもたらすのか、この分野の初学者向け解説する連載。今回は、リアルタイムレイトレーシング技術でどのような表現が可能になるのか、具体例を挙げながら見ていきます。
連載目次
レイトレーシング技術自体は、CG技術が今ほど発達していなかった1980年代において、すでに、CPUベースで実装したさまざまな描画概念が提唱されている。
その後も、多様なレイトレーシング技術の高速化が試みられてきたが、リアルタイムにレイトレーシングを実践することができるようになったのは、2018年に、NVIDIAが、GeForce RTXシリーズを発表してからのことになる。
前回は、このあたりの経緯や「レイトレーシングとはどんな技術なのか」といった、基本概念の解説を行った。第2回となる今回は、連載タイトルにもなっている「ゲームグラフィックスとレイトレーシング」について見ていくことにしたい。
2018年に、リアルタイムレイトレーシング技術が発表されるやいなや、ゲーム業界は、即座に反応を示した。
これまでGPUに、折々に、ジオメトリシェーダ、テッセレーションステージ、メッシュシェーダといった新機能が搭載されたときには、ここまでの素早いレスポンスはなかっただけに、筆者も驚いた。
2018年のDirectX Raytracing(以下、DXR)の発表とほぼ同時に、ゲームエンジンのUnreal Engineで有名なEPIC GAMES、エレクトロニックアーツ(EA)の先行技術開発チームSEED、北欧の技巧派ゲーム開発スタジオのRemedy Entertainment、3Dベンチマーク開発で著名なUL(旧FUTUREMARK)が、このDXRのβ版を活用して、当時の最高性能のGPUを搭載したWindows PC上で動作するリアルタイムデモを発表したのである。
当時、この4社が示したのは、ゲームではなく、単なる「リアルタイム動作する技術デモ」ではあったが「レイトレーシング技術をゲームグラフィックスに利用していくには当面はこうするべきではないか」という感じの、未来予想図に相当するものとなっており、当時のゲーム開発者に「こんなことができる(かもしれない)」という夢や希望を与えるものにはなっていたと思う。
上記、四つのデモは、レイトレーシング法の活用において、それぞれで共通するところと違うところがあった。
共通するのは、すべてのレンダリングをレイトレーシングに置き換えるつもりはなく従来の「ラスタライズ法」と新しい「レイトレーシング法」を「適材適所で組み合わせていく」という方針(コンセプト)だ。
つまり現在のゲームグラフィックスで採用されているラスタライズ法に主だったレンダリングを任せ、ラスタライズ法では困難なレンダリングをレイトレーシング法で実践する……という方針だ。
いうなれば「ラスタライズ法とレイトレーシング法のいいとこ取り的活用」であり、かっこよくいえば「ハイブリッド的なレンダリング手法」である。
このハイブリッド・レンダリング法はスケーラブルなゲームグラフィックスを設計するうえでもメリットが大きいこともあり、現在では、一つのゲームタイトルを複数のゲームプラットフォームに対応させるための方策としても利用されている。
例えば、GPU性能の低いマシン上では従来通りのラスタライズ法だけの描画に留め、GPUが高性能なマシンではレイトレーシング法を積極利用する……といった具合だ。
四つのデモにおける相違点は「どういった表現をレイトレーシングに任せるか」という部分に現れている。
しかし、この四つのデモが選択した「レイトレーシング法に任せた表現」項目を、重複を除いて挙げるとすると、だいたい「影」「鏡像」「環境遮蔽(Ambient Occlusion)」「間接光」の四つになる。結局、相違点とは、それぞれのデモで「どれとどれを採用したか」の「組み合わせの違い」だけ……ということになる。
裏を返せば、この四つの表現項目こそが当面のハイブリッド・レンダリング法において、レイトレーシング法で賄うべき重要項目になりうるということでもある。
では「影」「鏡像」「環境遮蔽」「間接光」の四つの表現要素とは、一体、どんなものなのか。一つひとつ見ていくことにしよう。
まず「影」からだ。なお、ここで言っている「影」は第三者に遮蔽されてできる影のことで、光の当たり具合でできる陰影のことではない。レイトレーシング法では光源に大きさのある線光源(棒状の蛍光灯のような一次元形状の発光体)や面光源(光る看板のような二次元形状の発光体)がつくり出す輪郭の淡い影も正確に表現できる。
『コール オブ デューティ モダン・ウォーフェア』(PC版、2019年)における影生成
ラスタライズ法によるシャドウマップ技法による影生成。
レイトレーシングを用いた影生成。
「鏡像」は映り込み表現のこと。現在は環境マップやレンダリング結果を鏡像として転用する疑似手法(SSR:Screen Space Reflection)が主流だが、これらは正確な映り込み情景を再現できない。しかし、レイトレーシングであればそれが可能となる。
『ラチェット&クランク パラレル・トラブル』(PS5版、2021年)における鏡像表現
「ラチェット&クランク パラレル・トラブル」(PS5版)では一部の材質表現にはレイトレーシングが使われている。この画面の右上、高所に浮かんでいるのが「実体」のクランク姿のバルーン。ここから視線を下げて、足元のツルツルした床を見てみると……。
ツルツルの床にはクランク姿のバルーンが映り込んでいる。バルーンの実体は画面外に出てしまっているのに、それを床に映り込ませられるのはレイトレーシングならでは。
環境遮蔽は、全方位からの間接光(いわゆる環境光)からつくり出される淡い影のこと。
『BATTLEFIELD 2042』(PC版、2021年)における環境遮蔽表現
ラスタライズ法による環境遮蔽は、描画結果をレリーフ画のような凹凸構造に見立て、その凹部分に影色を付けていくだけの疑似手法であるため、影色の付き方が曖昧で不正確になる。例えば、黄色いクレーン機械の後部下部が明るいのは不自然である。
レイトレーシング法による環境遮蔽も、ある種疑似的な簡易影生成に相当するが、それでもそのシーンに存在する3Dオブジェクト同士の遮蔽関係構造を正確に反映するため、その陰影の出方はかなり正確なものになる。黄色いクレーン機械の後部下部もちゃんと暗くなっている。
「間接光」は、直接光で照らされたオブジェクトの反射光/拡散光が第三者を照らす照明効果のことだ。
『Metro Exodus』(PC版、2019年)における間接光(大局照明)
左は明るいところだけを直接光でライティングし、暗がりは簡易的な(一様に薄明るくしているだけの)間接光表現となっている。右は直接光の照射された壁の近辺や、その反射方向が明るくなっていたり、そうした間接光が行き届いていない領域はかなり暗いままになっているのが見て取れる。太陽が動けば、このシーンの見え方も変化するのはいうまでもない。
前出の四つのデモのうち、これら4要素「全部入り」の実装に挑戦したのは、EPIC GAMESとEA/SEEDのデモだった。
そして「影」「鏡像」「環境遮蔽」の3要素を実装していたのはRemedyのデモだった。
最もレイトレーシング法で実装した要素が少なかったのはULのデモだ。このデモでは「鏡像」のみをレイトレーシング法で実装し、それ以外の要素はすべてはラスタライズ法でレンダリングさせている。ハイブリッド・レンダリング法というよりも、レイトレーシング法を鏡像生成のためだけに利用した「ワンポイントリリーフ的な活用事例」といった感じだ。
実際、最近までに発売されたレイトレーシング技術に対応したゲームタイトルのグラフィックスを振り返ってみると、そのほぼすべてが、この「影」「鏡像」「環境遮蔽」「間接光」の4要素のいずれか一つから四つに対応したものになっている。
2018年時、4社が予想した「近未来ゲームグラフィックスへのレイトレーシング技術の応用」は、その「未来予想図」のとおりになった……といって差し支えないと思う。
ただ、近年になって、レイトレーシングの応用編的な活用を実践したゲームタイトルも出始めている。
2022年3月に発売された『グランツーリスモ7』では、車に搭載されたエンジンが出す騒音が車内にどう伝搬して変調されるかをレイトレーシングを活用して実践している。
2023年10月に発売された『Marvel’s Spider-Man 2』では、一定距離内の高層ビル内の室内情景をあえてレイトレーシングで描画し、それより遠方は描画を省略することで、Level of Detail制御をレイトレーシング技術で肩代わりするような工夫を実践している。
ラスタライズ法とレイトレーシング法を組み合わせたハイブリッド・レンダリング法では、ラスタライズしてピクセル化した画面上の各ピクセル(に対応する3D座標)から3Dシーン内にレイを投げて3Dシーン内の情報を回収することになる。
現在、4Kゲーミングなどといって4K解像度のゲームグラフィックスがもてはやされる傾向にあるが、2023年時点では最高クラスのGPUでも、レイトレーシングを絡めて30fpsから60fpsで賄えるのはせいぜいフルHD解像度が限界だ。
フルHD解像度だと総ピクセル数は約200万個。1ピクセルあたり1レイを投げるだけでも200万本のレイを投げて3Dシーンの情報回収をさせることになる。当然「1ピクセルあたりに投げられるレイの数」が多すぎれば、処理は重くなりすぎてリアルタイム動作に支障が出てきてしまう。
上の四つのデモで最も重かったEPIC GAMESのデモでは、フルHD解像度で1ピクセルあたりに、影生成で1本、鏡像生成で2本、環境遮蔽で2本のレイを投げる実装となっていた。なのでトータル、200万ピクセル×5本で1,000万本+αといった概算になる。
また、EPIC GAMESの技術デモの鏡像生成では1ピクセルあたり2本のレイを投げるが、そのレイが第三者3Dオブジェクトに衝突するとそこから再びレイを投げる2バウンス処理に対応させているため、場合によっては1ピクセルあたりのレイ数が鏡像生成だけで4本になるケースもあった。また、環境遮蔽では2本のレイを投げるが、投げる方角を毎フレーム微妙に変えて8フレーム後に総計16本のレイ分の情報を集約して描画に反映する手法とした。つまり、完全な環境遮蔽が画面に描き終わるまで8フレームほどの遅延を生じるということだ。
当面は、一般的なゲームグラフィックスにおいて、フルHD解像度でレイトレーシング法を適用するにしても、投げられるレイの本数は1ピクセルあたり一桁台が主流、よくて2桁台前半といったところになると見られる。ちなみに、映画用CGなどは1ピクセルあたり数千本から数万本以上は投げているイメージだ。
リアルタイム描画が必須なゲームグラフィックスと、時間を十分にかけて描画する映画などで用いられるオフラインCGとでは、やはり、表現力の格差はまだまだ大きいのだ。
ここからは、いろんなレイトレーシング対応ゲームやデモなどを動かした経験則に基づく筆者の考察・推測になるが、ここ数年のGPUの性能とそのレイトレーシング性能のパフォーマンスを鑑みると、10TFLOPS台前半のGPU搭載機では当面、表現要素1個+α程度しかレイトレーシング法で実践できないとみている。具体的にいえば「影」「鏡像」「環境遮蔽」「間接光」のうち一つか、限定的な曲面でもう一個くらいをレイトレーシング法で実践し、それ以外は従来どおりのラスタライズ法で描画するという前述した「レイトレーシングのワンポイントリリーフ的な活用」だ。ちなみに、10TFLOPS前半のGPUを搭載する代表的なマシンといえば、そう、PS5やXbox Series Xである。
上記4要素から複数をレイトレーシング法で実装し、なおかつ安定的にゲームグラフィックスを30fpsから60fpsで描画できるようにするには最低でも20TFLOPS以上級のGPUが必要になるだろう。
4要素のうち、一つしかレイトレーシング法で実装できないとすれば、現代ゲームグラフィックスはどれを採用するべきなのか。 費用対効果の面で考えればそれは「鏡像」だろう。その理由は、リアル系ビジュアルの場合、4要素のうち、「鏡像」表現が今のゲームグラフィックスで一番、不自然さを克服できていないからだ。実際、PS5やXbox Series X向けタイトルでは、このパターンが多い。もちろんゲームグラフィックスのスタイルによって優先順位は変わってくるとは思うが。
※URLは2023年11月6日にリンクを確認済み