|
本稿では、どういったグラフィックス表現が行なわれているのかを見ていくことにしたい。
■ プログラマブルシェーダ3.0仕様に特化した設計 まずは、グラフィックス設定周りから見ていくことにする。 「SCCT」の動作には最低でもプログラマブルシェーダ1.1ベースのGPU(グラフィックスカード)が必要となっており、動作条件としてパッケージに「NVIDIA系はGeForce3以上、ATI系はRADEON 8500以上」と記載されている。もはや、この足切りはPCゲーマーには大した問題ではないであろうが、ノートPCやちょっと古めのメーカー製PCユーザーは注意すべきポイントかもしれない。
さらに、注意したいのは、「SCCT」では、GeForceFXシリーズやRADEON 9500以上のプログラマブルシェーダ2.0(以下、SM2.0)世代のGPUで動作させた場合、強制的にSM1.1設定に固定される。別な言い方をすれば「SCCT」では、SM2.0(+)動作モードは用意されていないと言うことだ。整理すると、SCCTは、NVIDIA系ではGeForce3、GeForce4、GeForceFX、そしてATI系はRADEON8500以上シリーズ全てで、SM1.1モードでしか動作できない。現時点ではSCCTを最高水準のグラフィックスで楽しむためにはNVIDIA GeForce6シリーズしかないということなのだ。
なお、2004年のE3で、筆者が取材した際には、「エンジンはプログラマブルシェーダ2.0ベースで開発しており、3.0への対応は局所的に行なう予定」といっていた。それなのに動作モードを「1.1」と「3.0」というドラスティックな切り分けとしたのはなぜか。これは、ローエンドからハイエンドまでのGPU製品をすべてSM3.0ベースでラインナップさせたNVIDIAとのパートナーシップと関係している……と見るのは勘ぐりすぎだろうか。 それはさておき、SM1.1動作とSM3.0動作時では「Splinter Cell」のビジュアルはどのように違ってくるのか。 結論から言えば、その両者のビジュアルはほとんど別ものといっていいほど変わってくる。その格差は「FarCry」の時以上……といっても過言ではない。 SM3.0ベースのGPUでの動作時、DISPLAY OPTIONには専用のサブメニューが出現し、専用のビジュアルフィーチャーのオン/オフが選択できるようになる。 影を柔らかに見せるソフトシャドウ表現や、見かけだけでなく視差に配慮した立体的なバンプマッピングを行なうパララックスマッピング表現などは、SM3.0モードにしないと設定項目すら現れないのだ。 GeForce6ユーザーにとっては待望の、そしてRADEON X800ユーザーにとってはちょっとがっかりさせられる、この対応度の違いは、ちょっとした議論を呼びそうだ。
■ 「SCCT」における影生成技法は?
最新作「SCCT」でも、この影表現にはこだわりを見せており、現存するPC 3Dゲームの中でもトップレベルのビジュアルとなっている。 特にSM3.0動作時における影表現は、実際に発売となったPC 3Dゲームとしては初ともいえる高度なソフトシャドウ表現を実現している。結論から言ってしまうと、「SCCT」では、このソフトシャドウ表現を、歴代の「Splinter Cell」で活用してきた影生成技法である「シャドウマップ技法」を改良する形で実装している。 少々難しいキーワードが連続して登場したので、順を追って解説しよう。 3Dゲームグラフィックスにおける影表現においては、丸影技法、投射テクスチャマッピング技法、ステンシルシャドウボリューム技法、シャドウマップ技法(シャドウバッファ技法)といった技術が活用されている。
丸影技法はキャラクタの足元に影グラフィック(丸い影、クッキー)を配置するだけの簡易的なものだ。投射テクスチャマッピング技法はテクスチャに描いた3Dキャラクタのシルエットを光源方向からシーンへ投射するような形でテクスチャマッピングして、これを影とする技法だ。この2つでは、基本的には自身の影が自身に投射されるセルフシャドウ表現などは行なえず、表現としては寂しい物になる。しかし互換性は高く、処理負荷も軽い。
ステンシルシャドウボリューム技法では、まず、光源方向から見て輪郭となる3Dオブジェクトの頂点を光源が進む方向に引き延ばしてできる影領域(シャドウボリューム)を生成。続いて、映像を構成する各ピクセルが影領域内部にあるか(影になる)、外にあるか(光が当たっている→影にならない)をステンシルバッファにマーキングしていき、最終的にステンシルバッファの内容に従って描画シーンに“影色”を付けていく。
ステンシルシャドウボリューム技法もシャドウマップ技法もセルフシャドウ表現や、3Dオブジェクトが相互に影を落とし合う相互投射影表現が自動的に可能になるリアルな影生成技法だが、その影の輪郭にその技法独特な特性が表れる。 ステンシルシャドウボリューム技法は影の輪郭が非常にシャープになる。 「シャープなのはよいことなのでは?」と思われるかも知れないが、現実世界の影は、身の回りを見てみれば一目瞭然、その多くが「もやっ」としたものであることに気が付くだろう。これは、影を作り出す光源となる光が、例えば蛍光灯などのような面光源(面積を持った光源)であることや、さらには空気による光の散乱、他の物体からの反射光などに影響されるためだ。ステンシルシャドウボリューム技法による影は、いわば太陽に照らされて月面上に落ちる影のような感じなのだ。
一方、シャドウマップ技法はシャドウマップの解像度が十分であるときにはシャープだが、不足だと影の輪郭にとても汚いジャギーが出まくってしまう。
■ 「SCCT」のソフトシャドウ表現の秘密~ソフトシャドウ生成がSM3.0モード限定なのはなぜ?
「SCCT」で採用されているのは、その中でも最も基本的な、近傍比率フィルタリング(Percentage Closer Filtering:PCF)を使う方法だ。具体的には、ピクセル描画時のシャドウマップ参照する際に、ある1点だけでなく、その周辺も吟味するようにする。これにより、影の輪郭近辺が、「影か(0)」「影じゃないのか(1)」という「0か1」かの二値的な描画でなく、もう少し曖昧な(たとえば0.75とか)描画が行なわれることになり、影の輪郭が淡い色合いにできるのだ。
そうした処理系によりやわらかい影、いわゆる「半影(Penumbra)」が生成されることにより、シャドウマップ解像度不足時に出現する影輪郭のジャギーもいい案配に低減される。 しかし、この半影の柔らかさは、シャドウマップ参照時に「何点分の周辺参照を行なうか」に強く依存する。そう、テクスチャフィルタリング処理やアンチエリアス処理と同じように、このサンプル数が多いほうが品質が向上するわけだ。ただ、闇雲にサンプル数を増やしたのでは、その分、負荷は増えてパフォーマンスに影響してしまう。 「SCCT」で、この折り合いをどこで付けているか公開されていないが、「このソフトシャドウ表現がSM3.0モード限定動作であること」と「NVIDIAからの技術支援があったこと」を考えるとおおよその仕様が見えてくる。 NVIDIAは、シャドウマップ参照時に、その領域が完全な影の中か、それとも影の輪郭周辺か……を判断して、影輪郭周辺の場合にのみ大量のサンプル数を適用するシェーダを例示している。
「SCCT」のソフトシャドウ表現の半影はかなりよく誤差拡散されており、そのサンプル数は数十(64あたり?)はありそうだ。ここまで重いフィルタカーネルを影領域全域に一様に適用するのはパフォーマンス的に無理かつ無駄であり、「SCCT」のソフトシャドウ生成でも影の輪郭領域にのみ大量サンプルを適用する処理系を実装していると思われる。
さて、どうしてこのようなソフトシャドウ・シェーダがSM3.0限定かと言えば、ピクセルレンダリング時の陰影処理……すなわちピクセルシェーダの仕様において、条件分岐がサポートされているのがSM3.0のみだからだ。SM2.0以下では条件分岐が使用できないため、「今描画しているのが影の輪郭付近かどうか」という条件判断をして、適用するPCFのサンプル数を可変にする仕組みが実装できない。そう、SM2.0では影領域全体に重い半影フィルタ処理を適用するシェーダしか動かせないので断念しているわけだ。 さて、この「SCCT」のソフトシャドウ表現も、完全無欠というわけではなく、いくつか問題点もある。半影同士が重なったときにちらついたり、影を落としている本体と半影が重なったときに不自然な半影が出ることがあった。また、半影の幅が、影の落とし主から投射距離と無関係である点もおかしいといえばおかしい(投射距離が長ければ長いほど半影領域が広がるべき)。
とはいえ、セルフシャドウまでも半影付きとなった、SM3.0モード時の影表現にはかなり説得力があり、そのビジュアル効果は絶大であることは確かだ。
■ バンプマッピングの次世代系? ~パララックス(視差)マッピング SM3.0モード時、「SCCT」では、「パララックスマッピング(Parallax Mapping)」のオン/オフが可能となる。
パララックスとは「視差」の意で、直訳すれば「視差マッピング」と言うことになる。ちなみに、EPIC GAMESが開発中の次世代ゲームエンジン「Unreal Engine3.0」で「バーチャル・ディスプレースメント・マッピング」という大層な名前で呼んでいる技術も、実質的にはこの「視差マッピング」と同じものだ。これはどういうものなのか。
微細な凹凸の表現というものは、その構造をポリゴンで表現したところで、実際の描画時には1ピクセル以下に埋没してしまうため、その陰影演算負荷の割に得られるビジュアル効果は低い。このため、そうした微細凹凸表現は、「凹凸があるかのように陰影処理を行なう」テクニックである、「バンプマッピング」で代用するのがセオリーとなっている。 現在主流となっているバンプマッピングの実現技法は、微細な凹凸面の「向き」に相当する「法線ベクトル」をテクスチャ化した「法線マップ」を活用するものだ。これは、ピクセル単位の陰影処理を、光源ベクトル、視線ベクトル、その都度法線マップから取り出した微細凹凸の法線ベクトルを用いて行なうことで実現される。実際には凹凸はないのだが、凹凸の向きが配慮されて陰影処理されるため、遠目には凹凸があるかのように見えてしまうのだ。なお、「凹凸があるかのように見える」だけで、実際には平面のままなのはいうまでもない。 このように、法線マップを使ったバンプマッピングでは、実際の立体的な凹凸情報に配慮していないため、強いパースがついた位置関係で見ると平面なのに立体的な陰影が付いているという、なんとも違和感のある見え方をする。あるいは近い位置で視線移動をしながら見ると、その凹凸感が乏しいと感じることもある。 この視差マッピングとは、この微細凹凸の法線ベクトルの他、さらにその高さ情報にも配慮したバンプマッピングだと思えばいい。
もともと、法線マップを生成する際に、微細な凹凸量を明暗で表現したハイトマップ(高さマップ)と呼ばれるものを用意するので、これまで、普通の法線マップベースのバンプマッピングでは不要となっていたハイトマップを再利用するもの……といえなくもない。
具体的な理屈は簡単で、凹凸の高いものほど視線方向にずれて大きく見えるように……すなわち「視差が生じるように」……バンプマッピングに味付けを行なうだけだ。さらに細かく言えば、実際の処理系としては法線マップやそのペアとなる画像テクスチャの参照に使うテクスチャ座標を、ハイトマップから読み出した微細凹凸の高さ情報をキーにしてずらすだけなのだ。 通常の法線マップを使用したバンプマッピングにごく短いテクスチャ座標のオフセット演算処理とハイトマップの読み出しを付加する程度なのでGPUへの負荷はそれほど大きくない。ただし、ハイトマップを余計にビデオメモリに読み込むことになるため、ビデオメモリの消費量は大きくなる。いずれにせよ、この視差マッピングは、SM3.0モード専用というのは解せない。SM2.0でも十分実装可能なはずなのだ。
「SCCT」では、この視差マッピングは煉瓦や石畳のような物に活用されており、うっかりすると見逃してしまう。SM3.0モード動作時には、ぜひとも壁や床を念入りに観察してプレイして頂きたい。
■ 疑似でない本当のハイ・ダイナミック・レンジ・レンダリングを実装 ハイ・ダイナミック・レンジ(HDR)レンダリングといえば、最近の3Dゲームグラフィックスのちょっとした流行語だ。 現実世界はとてつもないダイナミックレンジに富んだ光/色に満ちあふれている。3Dグラフィックスにおいても、陰影処理自体を表現幅が広く誤差の少ない数値系で行なうようにしよう、というのがHDRレンダリングの元々の定義だ。 なお、3Dグラフィックスの場合は、最終的な表示段階にて、カメラの露出制御や眼球の瞳の絞り制御に相当する処理系や、強い光が溢れ出て見える視覚効果をポストプロセスで付加したり……といったところまでを広義にHDRレンダリングと呼ぶようだ。
「Splinter Cell」シリーズは、他に先駆けて本格的なHDRレンダリング表現を取り入れてきたが、2作目まではSM1.1ベースのグラフィックスエンジンであったため、その処理系は擬似的なものに留まっていた。具体的には、「強く光っている」とした箇所をテクスチャやフレームバッファのαチャンネル等にマーキングしつつレンダリングを進めていき、できあがったフレームに対してその強輝度部分(αチャンネルにマークした情報)を種にしてぼやかして(ブラーさせて)合成する画像処理を施すという処理系を採用していた。
「SCCT」のSM3.0モードでは、レンダリング対象バッファをOpenEXRベースのFP16バッファ、すなわちαRGBの各チャネルが16ビット浮動小数点実数表現系である64ビットバッファ(FP16×4)にレンダリングする処理系を採用することとなり、名実共に“本物の”HDRレンダリングを実現している。 GeForceFX時代ではタブーだった浮動小数点実数(FP)バッファも、最新GeForce6世代ではちゃんと動作できるようになり、しかもFP16ベースの64ビットバッファに限っては、アルファブレンディングとバイリニア・テクスチャ・フィルタリングに対応となり、FPバッファの活用自由度においては最新RADEONを凌駕するに至っている。 「SCCT」では、この「本当のHDRレンダリング」を行なうためにFPバッファの積極的な運用が必要不可欠となり、そのためにHDRレンダリングモードをSM3.0モード限定にしたと見られる。 実際の「SCCT」において、オンとオフの効果の差は、比較的強い光源を配置したシーンで見受けられる。こうしたシーンにおいて、オフでは光源からの直接光にのみグレア効果が発生し、オンではその光源に照らされた3Dオブジェクトの陰影までグレア効果が発生する。
オフ時には全体的に明暗がフラットな感じだが、オンでは明暗の描写がはっきりするようになり全体的にハイコントラストな映像になる。
また、暗いシーンから明るいシーン、明るいシーンから暗いシーンへの移動時や、光源の向きが極端に変わったときなどは、ふっとシーン全体のトーンが調整されるような演出が入る。これが、HDRレンダリングをオンにしたときにだけ設定可能となる「トーン・マッピング(TONE MAPPING)」オプションの効果だ。
最初からSM3.0モードでプレイしているユーザーは、このHDRレンダリングがらみの効果をほとんど意識することがないかも知れない。しかし、SM1.1モードでプレイしていたユーザーが、SM3.0モードへアップグレードした場合、そのアンビエントなリアル感の向上に驚くことだろう。前出のソフトシャドウ表現とのマッチングも良い。
なお、SM3.0のHDRレンダリングモードをオンにすると、アンチエリアス設定が無効になってしまう。これは、FP16ベースの64ビットバッファにまつわる制限で、同様のHDRレンダリングパスを実装する「FarCry」でも、制限事項となっていた(詳細はこちらを参照)。
前作まではテクスチャの描き込みが中心だったディテール表現は、「SCCT」のSM3.0モードでは、かなり高品位な法線マップを併用してのグレードアップが目立つ。
たとえば、基本的なところでは服のシワ、銃器を初めとした各種小道具の微細なモールドの凹凸表現に法線マップが適用されているので、注意深く観察して、その向上したディテール感を味わいたい。
この他、「SCCT」のSM3.0モードにおける法線マップ活用の応用例としてユニークなのは、キャラクタ顔面上の微細凹凸への適用だ。 具体的には、キャラクタの顔面上のシワや目や眉間の周りの窪みに利用されている。また、主人公サムの無精髭の凹凸も法線マップによって表現されている。口の凹凸は、キャラクタがしゃべるときに大きく変形したりするのでジオメトリ構造を持っているようだ。 さて、当初、「SCCT」では、擬似的なスキンシェーダを実装していると言う話だったが、実際に見た感じでは、“それほど”の実感はない。 人間の皮膚は表面の陰影だけでなく、皮膚下に浸透した光が散乱して伝搬し、独特の透明感を放つ。たとえば逆光気味に人物の顔を見たとき、肉厚の薄い耳殻部や頬の輪郭当たりから、隠れて見えない向こう側にあるはずの光が皮膚を透き通って鈍い輝きを放っていることに気が付くだろう。こうした陰影処理には「面下散乱」(Subsurface Scattering)という処理系を実装しなければならず、まともにやるととてつもなく重い処理になる。このため各種フェイク技法で代用するわけだが、「SCCT」では、そうした疑似技法を適用しているようには見えない。
それでも、顔面には一種独特な柔らかいハイライトが出るようになっており、プラスチック的な陰影のみに留まっていた前2作と比べれば進歩が見える。「Half-Life2」でもそうだったが、鏡面反射と拡散反射を適度に複合させたHalf-Lambert反射シェーダのカスタム版みたいな物を実装していると思われる。
髪の毛の表現は“毛ヒレ”ポリゴンを植え込むタイプのもので、「ただの画像テクスチャ主体で表現されていた前2作と比べれば進化したかな」と言うレベルだ。眼球の動きなども死人みたいで生命感がない。 肢体をアクロバティックに動かす各種スタントアクションは1作目からかなりのレベルに達していたので文句はないが、人物キャラクタの演技力は、それこそ、同ジャンルのライバル作品である「メタルギア・ソリッド」に水を空けられている感がある。
「Splinter Cell」の次回作には、このあたりの進化を期待したい。
■ 最後に~その他の「SCCT」グラフィックスの見どころとチェックポイント
最後に、「Splinter Cell」の全シーンを通して、印象に残った表現の画面ショットを示しつつお別れしたい。
(C) 2001 - 2005 Ubisoft Entertainment. All Rights Reserved.Ubisoft and the Ubisoft logo are trademarks of Ubisoft Entertainment in the U.S. and/or other countries.
□Ubisoft Entertainmentのホームページ (2005年5月12日) [Reported by トライゼット西川善司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c)2005 Impress Corporation, an Impress Group company. All rights reserved. |
|