連載:「ロスト プラネット」グラフィックスオプションに見る3Dゲームの最新事情

カプコンに聞く「ロスト プラネット」のグラフィックスオプション(前編)

1 2 3 4

 

モデルの詳細
選択肢:低/高

 

 画面上に登場する3Dモデルの詳細度――実質的には頂点数――を設定する項目だ。
 ロスト プラネットでは,1キャラクターあたり1万〜2万ポリゴン,「VS」(バイタルスーツ)と呼ばれる機動兵器で3万〜4万ポリゴンくらい使われている。背景は50万ポリゴンで,影生成などに用いられる中間レンダリングコストまでを含めると,1フレームのレンダリングを完了するのに300万ポリゴンくらいのレンダリングが行われる計算だ。PlayStation 2世代のタイトルだと,シーン全体でも数十万ポリゴン程度で,あの3DMarkシリーズでも100〜200万ポリゴンと書くと,ロスト プラネットのポリゴン数がいかに多いかイメージできるのではなかろうか。

 

 Xbox 360版だと,すべてのプレイヤーが同じ性能のXbox 360を利用するため,同一の“ポリゴン予算”で実装して問題ないが,プレイヤーごとに環境が異なるPCではそうもいかない。そこでPC版では,シーンに登場する3Dキャラクターのポリゴン数を少なくする「低」設定が選べるようになっているというわけだ。もちろん,あくまで基本は「高」になる。

 

「低」(左)と「高」(右)の比較。ロボットやスノーバイクの曲面表現に大きな違いが見られる

 

 ちなみにロスト プラネットでは,視点からの距離が近い3Dキャラクタについてはポリゴン数の多い3Dモデルを活用し,遠く小さく描かれがちなものについてはポリゴン数の少ない3Dモデルに切り換える,「LOD」(Level of Detail)システムを採用している。実は「低」設定だと,このLODシステムにおける,遠方表示用の低ポリゴンの3Dモデルのみを利用する実装になっているのだ。

 

 

影の品質
選択肢:なし/低/中/高

 

 影の描画品質を設定する項目だ。
 ロスト プラネットにおける影生成は「カスケード拡張されたライトスペース・パースペクティブ・シャドウマップ技法」(Cascaded Light Space Perspective Shadow Maps,以下CLSPSM技法)を採用している。

 

 CLSPSM技法について語る前に,まずはざっと,現在の3Dゲームグラフィックスにおける,比較的まじめな(?)影生成技法の主流となっている「ステンシルシャドウボリューム技法」と「シャドウマップ技法」についておさらいしておこう。
 まずステンシルシャドウボリューム技法は,「DOOM 3」などで採用されたもの。連載のバックナンバー「DOOM 3の影生成について考察する」が詳しいので,ぜひチェックしてほしい。

 

 もう一つが,「Tom Clancy’s Splinter Cell」で採用された,別名「デプスシャドウ技法」ことシャドウマップ技法だ。名前のとおり,CLSPSM技法につながるのが,こちらの技法である。
 シャドウマップ技法では,影の生成元となる光源が「シーン内のオブジェクト達によってどのように遮蔽されているのか」を把握するために,光源の位置を仮想視点にしてシーンの深度情報をテクスチャにレンダリングする。この工程によって生成されたテクスチャは,“光源から見た光の遮蔽分布”を示すが,これをとくに「シャドウマップ」と呼ぶことが,その名称の由来だ。実際にピクセルを描画するときには,各ピクセルが遮蔽されているか否か(=影となるか否か)の判断が,シャドウマップを参照して行われることになる。

 

 シャドウマップ技法にはいろいろ弱点が存在するのだが,その一つとして「影のジャギーが出やすい」というのがあり,これを克服するために生み出されたのが,最終的なレンダリングを行うカメラ視点に近い領域のシャドウマップを高解像度に,遠い領域のシャドウマップを低解像度に生成する「パースペクティブ・シャドウマップ技法」だった。ここまでは連載バックナンバー「3DMark06で学ぶ影生成事情」に詳しい。
 このとき低減されるジャギーは限定的だったので,「使用するテクスチャに対し,最大限の利用効率でシャドウマップを生成できるようにしよう」と,その透視投影変換にもう一工夫したのが「ライトスペース・パースペクティブ・シャドウマップ技法」だ(図1)。

 

図1 CLSPSM技法の概念図(3カスケードの場合)

 

 しかし,屋外シーンのような広大な空間に対してライトスペース・パースペクティブ・シャドウマップ技法で影生成を行うと,シャドウマップとするテクスチャの解像度が不足してしまうという問題が残った。そこで「シャドウマップを複数のテクスチャに分割して生成する」という拡張を施した。これを「カスケード拡張」という。
 そういう経緯で,CLSPSMには,非常に長い名称がついているというわけだ。Xbox 360版のロスト プラネットでは,CLSPSM技法においてある解像度のテクスチャを3枚用意し,これを視点から見て近距離,中距離,遠距離に分け,それぞれの領域におけるシャドウマップ生成に活用していた。

 

このシーンの影を生成するに当たって,以下の3枚のシャドウマップを生成している

 

近距離の遮蔽構造を示したシャドウマップ1 中距離の遮蔽構造を示したシャドウマップ2 遠距離の遮蔽構造を示したシャドウマップ3

 

上から「なし」「低」「中」「高」。「中」は「低」と比較して,遠方の影(ここではタンクの影に注目)がしっかり描画されている。「高」だと,プレイヤーキャラクターの影に注目したとき,輪郭がソフトになっているのが分かる

 さてPC版では,「なし」だと文字どおり影の描画を完全に省略する。影の生成負荷はかなり大きいので,これを省略するとゲームのパフォーマンスはかなり向上する。次に「低」だと,1枚のテクスチャのみを使う設定になる,いうなれば「カスケード拡張なし」になるのだ。
 3枚のシャドウマップを生成するのは「中」以上。「中」と「高」の違いは,影の輪郭を柔らかく見せる「ソフトシャドウ処理」のクオリティになる。ここで重要なのは,DirectX 9版だと「中」が最高設定で,「高」はDirectX 10版でしか選択できないことである。

 

 「『中』だと,Xbox 360版と同じクオリティになります。具体的には9サンプルでの近傍比率フィルタリング(Percentage Closer Filtering,以下PCF)によるボカシ処理を実行する,と。一方,DirectX 10版専用になる『高』では,32サンプルのランダムPCF処理で,より徹底したソフトシャドウを作り出しています」(石田氏)

 

 ソフトシャドウ処理は,シャドウマップを参照したときに,周辺の遮蔽情報までを読んでそれを加重平均化するような処理でボカしていく。「中」設定だと,シャドウマップを読み出すときに,1点ではなく,その周辺を含む9点を読んでぼかすということになる。DirectX 10版のランダムPCF処理も基本的な考え方は同じだが,その読み出しが32点で,しかも「モンテカルロ法」的なランダム要素を与えたものになっている。
 このあたり,石田氏が以下のとおり,もう少し細かく説明してくれている。

 

「『中』設定の9サンプルPCFについては,影領域全域に対し,影の内側だろうが輪郭だろうが区別なくこのボカし処理を適用しています。対してDirectX 10版の32サンプルランダムPCFは,影の輪郭付近であるか否かを示すマスクフレームを別途生成しておき,これを用いて,影の輪郭付近についてのみこの高負荷な処理を適用するんですね」

 

 「高」設定は,ピクセルシェーダにかなり負荷のかかる技法になるので,高機能GPUを“いじめる”意味ではかなり有効。ハイエンドGPUベースのDirectX 10環境を持っているいる人は,ぜひとも「高」設定を選びたいところだ。

 

 

影の解像度
選択肢:低/中/高

 

 CLSPSM技法による影生成時に利用する,シャドウマップの解像度設定用項目。
 「中」設定がXbox 360と同等の1024×1024テクセル。「高」設定だと2048×2048テクセルになり,Xbox 360版よりも高品位の影生成が可能になる。「低」では512×512テクセルだ。
 「影の品質」オプションの設定と組み合わせることで,負荷のバランスを細かくチューニングできるというわけである。なお,シャドウマップ自体のフォーマットは,1要素32bit浮動小数点テクスチャ(R32F)を使用している。

 

「低」(左)と「高」(右)の比較。「低」だと全体的にぼやけているのが分かる

 

 

モーションブラーの品質
選択肢:なし/低/中/高

 

 ロスト プラネットのビジュアルにおいて非常に大きな部分を占めているのが,モーションブラーに関連した処理である。

 

 モーションブラーとは,速い動きに対し,その動く方向に合ったボカシを入れる処理のこと。これまでの3Dゲームでもモーションブラー処理がなかったわけではないが,画面全体にブラーをかける,いわゆる「カメラブラー」が主流だった。
 ロスト プラネットでは,シーン内でバラバラに動いているそれぞれのキャラクターについて,部位単位に動きベクトルに沿ったブラーを個別に掛ける高度なモーションブラー処理が実装されている。
 特徴付けているのが,「3Dキャラクター達の動き自体は3Dで把握するが,ブラー処理自体は2Dベースの画像処理で行う」ことから名付けられた,「2.5Dモーションブラー」だ。

 

2.5Dモーションブラーの「なし」(左)と「あり」(右)。シーンの躍動感がまったく違う。静止画からもそれが伝わってくるはずだ

 

ロスト プラネットで採用された2.5Dモーションブラー

 2.5Dモーションブラーでは,「シーン内の3Dキャラクターが,前回位置から現在位置までどう動いたか」の情報を,まずテクスチャにレンダリングする。これによりピクセル単位で動きベクトルを把握可能だ。これはとくに「ベロシティマップ」(Velocity:速度)と名付けられているが,実際にブラー処理を適用するにあたっては,そのベロシティマップを参照して速度ベクトルを取り出して参照し,通常のシーンをレンダリングしたフレームからピクセルをサンプリングして行うわけである。
 「前回位置から現在位置まで大きく離れている」という情報が判明したとしよう。その場合は「速い動き」であると分かるので,サンプルしたピクセルの色を薄めるといった処理が行われる。こうすると,「速度の速いところは薄く,遅いところほど濃くなる」という,立体的な残像を作り出せる。

 

2.5Dモーションブラーの概念図

 

 「モーションブラーの品質」設定項目は4段階用意されているが,「なし」に指定すればモーションブラーはキャンセルされる。「低」設定以上では,ベロシティマップから取り出した速度情報を元にレンダリングフレームから読み出すピクセルの数が増え,「低」で8点,「中」では12点,「高」では16点となる。
 読み出し点が多いほど,作り出されるボケ(=残像)の品質は向上し,同時に負荷は大きくなる。

 

2.5Dモーションブラーなしの状態で通常レンダリングしたフレーム(左上)と,このシーンの深度情報(右上),ベロシティマップ(左下),ベロシティマップの深度情報(右下)。2.5Dモーションブラーの実行に当たっては,左上のフレームに対して,残る3点が参照され,適用されることになる

 

左は,ベロシティマップの速度情報だけでブラーを適用したときのもの。動きの輪郭付近で不自然なブラーが出てしまっている。一方,右は製品版の状態。不自然なブラーが出ないよう,シーンの深度情報やベロシティマップの深度情報を参照して,前後関係に配慮したブラー生成が行われるように改善したのがこちらだ

 

 ……前編はここまで。明日は「エフェクトの解像度」以下について見ていきたいと思う。

 

1 2 3 4

 

タイトル ロスト プラネット エクストリーム コンディション
開発元 カプコン 発売元 カプコン
発売日 2007/07/12 価格 7340円(税込)
 
動作環境 OS:Windows XP/Vista(+DirectX 9.0c以上),CPU:Hyper-Threading Technology対応Pentium 4以上[Core 2 Duo推奨],メインメモリ:512MB以上[1GB以上推奨](Windows Vistaでは1GB以上[2GB以上推奨]),グラフィックスチップ:GeForce 6600以上(GeForce 7300を除く)[GeForce 8600以上推奨],HDD空き容量:8GB以上,ネットワーク環境:1Mbps以上,ゲームパッド「Xbox 360 Controller for Windows」の利用を推奨

Character Wayne by (C)Lee Byung Hun /BH Entertainment CO., LTD, RIGHTS RESERVED. (C)CAPCOM CO., LTD. 2006,2007 ALL RIGHTS RESERVED.

【この記事へのリンクはこちら】

http://www.4gamer.net/specials/3de/lost_planet/lost_planet_02.shtml