業界動向
リアルタイムレイトレーシング対応の「Minecraft with RTX」は,単にビジュアル面が向上しただけではない
大人達よ,時代は変わったのだ
2019年11月にNVIDIAは,「Minecraft with RTX」の体験会に一部のプレイヤーを招待し, リアルタイムレイトレーシング(以下,RTX)オンでMinecraft世界に絶景を作り上げてもらった。もちろん,RTX ON/OFFの劇的変化の比較提示は欠かせない。
けれど,この動画を観た時にふと思った。ゲーム業界は,RTXが応用できなかった過去の30数年間で,すでにあの手この手を使っていて,
こんなものが,
ここまで進化してきた。
「Minecraft with RTX」は,煩雑なすべての中間作業を省いて,今世の中にある最もハイテクで最もモダンなゲームよりも優れた,光と影の照明効果を作り出した。これは,普通のPCでは「Minecraft」が動かないという噂を証明した※だけでなく,今後のゲーム作りのプロセスを左右する技術だとも言えるのかもしれない。
※中国では「Minecraftは重くて普通のPCでは動かないと聞きました」という掲示板書き込みがよく見られるが(日本でもたまに見られるが),それをちょっとアイロニカルに書いているものと思われる。
そもそもレイトレーシングの始まりは,1968年のことだ。※とても簡単に説明すると,光の伝播を物理法則に従ってシミュレートすることで,一つのシーンに数百万本の光の線を投下し,それらが屈折し,反射し,最終的にスクリーンまで戻ってくる光が画像を作り上げる。この手法はコストが高く,再現するのも凄まじい時間がかかる。初めての3Dアニメ映画「トイ・ストーリー」は,レイトレーシングを使って1フレームの制作で30時間かかったこともあるという。とはいえこの方式で作り上げた画面は,確かにリアルな光と影を再現できる。「トイ・ストーリー」のキャラクター達は,プラスチック感こそ強いものの,リアルな光反射を表現していたのだ。
※Arthur Appelによって1968年に提示されたアルゴリズムを指していると思われる。(→Wikipedia)
それくらいの重い処理スピードをゲームで使おうとすると,それは「パワポスピード」※よりも遅いに違いない。ゆえに,一般的にはラスタライズという手法を採用している。
ラスタライズについて簡単に説明すると, 2Dのスクリーンに3Dの物体をペタリと投射することであり,途中の光計算のプロセスが欠けているので,基本的な照明効果すらも反映されないことが多くある。拡散反射による間接光は言うまでもなく,一番簡単な鏡面反射すら実現できない。
リアルライフでは,ビルの窓ガラスは街の風景を反射するが,ラスタライズ方式のゲームではそういう投影はない。コンピュータには,一つの物体が別の物体を投影するということを理解できる知力はないのだ。
※Microsoft PowerPoint の切り替えみたいなスピードであるという揶揄表現
そんなラスタライズの欠陥を克服して,できるだけレイトレーシングのような効果に似せたいデベロッパ達が,過去何十年にもわたって使い続けているフェイクテクニックがある。
(その1)
前述の「ニード・フォー・スピード」の今昔比較から分かるように,デベロッパのテクニックは上達してきている。今のゲームでは鏡面反射が普通に表現できていて,「スパイダーマン」のビルでも,街中の建築が映り込んでいる。……のだが,実はこれは目くらましの術にすぎない。「スパイダーマン」の窓ガラスに反射しているのはゲーム内の街ではなく,事前に用意された六枚のテクスチャ。これを使ってシーンを囲む部屋をキューブマップで作っている。ゲームが進むうちに,リフレクションはガラスやペイントなどの表面を覆って,まるで映り込んでいるかのような錯覚を与えられる。
キューブマップで使われるリフレクションは事前に用意されたテクスチャなので,リアルタイムで動的な環境変化は表現できない。「スパイダーマン」で向こうのビルが崩れたとしても,崩れた状態の画面を事前にキューブマップで用意していない限り,揺るぐことなく立ち続ける。火災が起こって炎に飲み込まれても,映った景色には何も変わりがない。
(その2)
スクリーンスペースリフレクション。リアルタイムで周辺の映り込みを反転/変形させ,鏡面反射のように偽装する。これはリアルタイムの動的変化は表現できるものの,欠点も明らかである。画面に表示されていないものは映り込まないし,間違って使うと,鏡に背中でなく正面が映されるような状況も。
(その3)
RTXと一番似ているフェイクテクニックは,ラスタライズでレイトレーシングの計算結果を使う,最近流行のアンビエントオクルージョン(AO)。事前にレイトレーシングでどの部分が暗くなるかを計算し,テクスチャを用意する。ラスタライズの時にそのテクスチャを使い,より立体的な効果を出すというわけだ。フェイクテクニックが進歩してリアル感が増すにつれて,コストも膨らみ続けている。今では,3D大作の一つ一つのシーンに大量の照明テクスチャが使われていて,様々な照明環境に適応するために,キャラクターにもそれなりの数のテクスチャが用意されなければならない。光源の位置なども細かいセッティングが欠かせないし,予想外の動きがあれば,ミス描画を引き起こしたり,デザイナーが工夫した雰囲気が丸々パーになったり……。
しかし「Minecraft with RTX」で今までの制限から完全に解放され,シーンごとにキューブマップのテクスチャを作らなくなってもよくなった。ライトを点けたら,自然と部屋の壁に光と影が映し出される。水面反射を考慮して,水辺の建築位置をちまちま調整することもいらなくなった。すべてリアルタイムでリアルな照明効果を表現する。今までのフェイクテクニックにとって,夢の目的地にたどり着いたというわけだ。プレイヤー達が,Minecraftで複雑な手間をかけずにリアルなシーンを生み出せる時代になったのだ。
もちろん,デベロッパはフェイクテクニックを使いたくて使っているわけはない。ハードウェアの制限で,仕方のない選択肢なのだ。「Quake」で率先して照明テクスチャを使ったジョン・カーマックは「3Dゲームフェイクテクニック」の生みの親とも言える。プログラマーとして手掛けたゲームでは,リアルタイムレイトレーシングを使ってないのが心残りらしい。
RTXの意義は,リアルな照明効果を作り出せるうえに,いままでのように迂回して目的達成をする必要もなく,しかもそれより段違いにコストが低いということだ。AAA大作以外にも,中小デベロッパもRTXでビジュアルを大きくレベルアップできるのだ。
要するに,RTXでゲームデザインの可能性が広がったのだ。デザイナーはグラフィックスの制限から解放され,プレイヤーに没入感を与えるバーチャルワールドに専念できる時代になった。ビデオゲームのエンターテイメント体験が,また一つ階段を上がったということだ。(著者:青春喜相逢)
- 関連タイトル:
Minecraft for Windows
- この記事のURL:
(C)2010-2015 Mojang AB