3Dゲームファンのためのグラフィックス講座
西川善司の3Dゲームファンのための「プレイステーション 4」グラフィックス」講座(後編) ~テッセレーションステージ活用によって実現される高品位表現と新表現)
(2013/3/8 00:00)
PS4世代のゲームグラフィックスはこうなる(5)~テッセレーションステージ活用によって実現される高品位表現と新表現
「テッセレーションステージ」は、PS4世代のゲームグラフィックスで活用が期待される要素の筆頭だ。
テッセレーションステージは、実は、ハルシェーダ、テッセレータ、ドメインシェーダの3つのシェーダから構成される。
テッセレーションステージはポリゴンをプログラマブルに分割したり、変移させたりする機能を持つと述べたが、ハルシェーダは、その分割する基本計画を司るもので、テッセレータは実際にその計画に従いポリゴンを分割する実行ユニットに相当する。ドメインシェーダはテッセレータが分割したポリゴンを変移させる役割を担当する。
このテッセレーションステージの使い道は色々検討されているが、まず最もダイレクトな活用法として想定されるのが、LOD(Level of Detail)システムをGPUに一任させる使い方だ。
LODとは、視点から近い、大写しになる3Dモデルを多ポリゴンで表現し、視点から遠い、小さく描画される3Dモデルを低ポリゴンで表現し、これを適宜、ゲームエンジン側(CPU側)で切り換える仕組みのことだ。
多ポリゴンモデルだけで描画する場合、視点から遠い3Dモデルは、各ポリゴンが同一ピクセルに複数回描画されることとなり、無駄な負荷がGPUに掛かることになる。しかし、低ポリゴンモデルと多ポリゴンモデルを両方、メモリに格納しておくのは冗長であり、低ポリゴンモデルと多ポリゴンモデルの切り替えを行なう処理はゲームエンジン(CPU)側で行なう必要がある。また、その切り替えの瞬間、その3Dモデルが膨らんだり萎んだりしてみえるポッピング現象としてユーザーに露呈することもある。
テッセレーションステージを活用した場合は、視点から距離に応じて無段階に自動的に(プログラマブルに)ポリゴン分割を行なうことができるので、シームレスに多ポリゴンモデル化することができる。LODシステムをGPUに委託できるうえ、無段階で多ポリゴン化されるためポッピング現象も起こりえない。
ただ、こうしたテッセレーションステージのLOD的な活用は、以前から「できる」と言われつつも、いまいち、ゲーム制作サイドが積極的にならなかった。これには幾つかの理由がある。
そうしたテッセレーションステージのLOD的活用を実践するには、ランタイム時の無段階ポリゴン分割を想定したテッセレーション制御点の設定や仕込みを3Dモデル制作時から行なう必要がある。しかし、このモデリングアプローチは、PS3、Xbox 360といったDirectX 9/SM3.0世代の3Dモデル制作手法とは全く異なるものであり、ゲームプラットフォームの主流がPS3、Xbox 360だったこれまででは、テッセレーション前提のコンテンツパイプラインに切り換えることがままならなかった。これが理由の1つだ。
しかし、これからのPS4世代、そして次期Xboxにも間違いなくDirectX 11世代GPUが搭載されるはずなので、テッセレーションステージ大前提としてコンテンツパイプラインを構築しても問題なくなるはずなのだ。
そして、これまでテッセレーションステージが積極活用されてこなかったもうひとつの理由は特許問題だ。
高精度で高品位なテッセレーション手法にCatmull-Clark法というものがある。Catmull-Clark法は多くの3DCGソフト(DCCツール)が、これをサポートしており、いわばCG業界標準のテッセレーション手法だ。このCatmull-Clark法には、有名な軽量版も存在し、それがCatmull-Clark曲面をベジェパッチで近似するApproximating Catmull-Clark(ACC)法だ。
このCatmull-Clark法の関連特許を広く抑えてきたのがCG映画「トイストーリー」などで著名なピクサースタジオだ。映像作品の場合、Catmull-Clark法を使った映像が作中に含まれることに何の問題もないが、ゲームの場合、ランタイムにCatmull-Clark法に関連したプログラムコードが含まれるため特許に抵触する。
しかし、ピクサーは、2012年夏、なんとこれをライセンスフリーとして、ゲーム業界を含めて自由に使えるようにすると発表したのだ。しかも、リアルタイムに高速に動作するCatmull-Clark法のプログラムコードをみんなで開発して共有していこうとするオープンソースプロジェクト「OpenSubdiv」も開始した。Catmull-Clark法は、ついにゲームでも利用しやすくなったというわけだ。
Approximating Catmull-Clark(ACC)法のテッセレーションメソッドを活用し、なおかつ、アーティストが携わるコンテンツパイプラインまでをもテッセレーションステージに配慮したものに革新させたゲームエンジンが、今回のPS4発表会で公開された。それが、カプコンの新ゲームエンジン「Panta Rhei」だ。
Panta Rheiは、MTフレームワークとは全く別系統のゲームエンジンとして紹介されており、関係者によれば完全新設計のエンジンだとのことである。フルスクラッチビルドで新設計エンジンとして開発したからこそ、テッセレーションステージをフル活用が実現できたのかもしれない。
さて、テッセレーションステージの最終フェーズを受け持つドメインシェーダは、分割されたポリゴンモデルを変移させる処理系を担当するが、この変位量をテクスチャで与えることができる。例えば、人体キャラクターの基本形状に対し、モンスター形状の変位テクスチャを与えてモンスターモデルにしたり、普通の人間形状の変位テクスチャを与えて人間モデルにすることもできる。あるいは人間形状変位テクスチャからモンスター形状変位テキスチャにだんだんと変化するようにドメインシェーダを駆使してやれば人間からモンスターに変身するモーフィング表現も行なえる。
さらに、テッセレーションステージは、毛髪表現にも利用できると期待されている。テッセレーションステージはポリゴンだけでなく線分を取り扱うこともできるので、線分で与えた髪の毛を必要な精度で分割して曲線化することも可能なのだ。
テッセレーションステージで線分を取り扱う際に使える特別なモード「Isoline Tessellation」も毛髪表現に利用できると期待されている。Isoline Tesselationは、与えた線分に一定距離の間をあけてその線分を複製する等値線(Isoline)を生成するものなので、これを応用して1本の髪の毛を増毛することができるのだ。
このテッセレーションステージを活用した毛髪表現はNVIDIAのDirectX 11世代技術デモやスクウェア・エニックスのLuminous StudioベースのAgni's Philosophyでも応用されている。