DirectX 11から重要になったテッセレーションの役割
(本ページはプロモーションが含まれています)
【本ページと関係深いページ】 :
3DCG制作入門向けパソコン -Blenderが快適
3DCGアニメ制作推奨PC - 3ds Max, Maya, Cinema 4Dなど快適
テッセレーション(テセレーションとも訳される)は、日本語では「市松模様、碁盤目状の配列」のような意味になる、Direct3Dからの基本技術です。
Direct3Dにおける「テッセレーション(tessellation)」は、ポリゴン(多角形)をより細かく分割する(三角ポリゴンに細分化する)という極めて単純な概念です。
しかし、DirectX 11から、なぜそれが、それほど重要なのでしょうか?また、それがゲームにどのような利点をもたらすのでしょうか?(今頃、いまさら何、と思われますが、他にこのようなことを分かりやすく書いたサイトがないため作りました。)
(出典:西川善司の3DゲームファンのためのDirectX 11テッセレーション活用講座「テッセレーションステージはこう使え」)
←ポリゴン数の少なさがカクカクした輪郭部分(特に頭や体の輪郭など)に露呈していた「DOOM3」
業界の専門家やグラフィックスチップ開発企業(Nvidia 、AMD)は、いろいろな表現でその内容を詳しく解説、紹介していますので、まず、漠然と全体像をつかむため、その主なものを書いて見ます。
●(簡単に言ってしまうと)3Dモデルを構成するポリゴンをさらに分割して、それに対して「盛ったり削ったり」といった変位を与えることができる機能になる。
●ディスプレイスメントマッピングは、表面の凹凸を表現するマッピング手法であるが、テッセレーションは、これと一緒に使われて、その効果を発揮する。
●ディスプレースメントマッピングは、3Dモデルに対して盛ったり削ったりと言う高さ方向の表現を行なうテクニックである。ジオメトリレベルでのディテールの付加やモーフィング表現などに適しているとされる。
●テッセレーションと自然に調和する「洗練アルゴリズム」。洗練アルゴリズムは、テッセレーションと伴に、粗いモデルを、より滑らかな外観のモデルへと変化させる。
●動的テッセレーションは、オンザフライで(実行中に動的に変化する)詳細レベルを変化させる。
例えば、遠くの建物が視界に入り始める時点では、10個の三角形でレンダリングし、建物に近づくにつれて、より多くの三角形を用いて、よりはっきりとした特徴を表し、窓や屋根といった建物の詳細な特徴を描写する。さらに建物の入り口にたどり着くと、何千もの三角形でアンティークの真鍮のドアノブをレンダリングするといった具合。
※注記)ディスプレースメント(displacement)とは、変位(元の位置からのずれ)のことのこと。
専門用語を知らない人には、少し分かりにくいと思いますが、ここまででテッセレーションのおよそイメージは、つかめて来ました。
このページは、解りやすくテッセレーションを説明することを主目的にしています。
技術的な専門用語を並び立てても解りにくいため、グラフィックスチップ開発メーカー(Nvidia 、AMD)の解説ページから、ゲーム(あるいは3DCG)に対してどのような利点や効果をもたらすかという観点から、その部分を拾い出してみます。
GPUにとってテセレーションは目新しいものではありません。しかし、このテセレーションをいかに実行するかは、ゲーミング体験に大きなインパクトをもたらす可能性があるようです。
【レンダリング・エフェクト利用で、リアリズムの限界に挑む】
(※注記)レンダリング・エフェクト:「演算描画による効果」のような意味)
(出典:AMD社の「GCNアーキテクチャーより」:DirectX 11テセレーションの向上)
テセレーション後:水面の波紋(左)←テセレーション前:波紋がない(右)
(動的テッセレーション例)
ゲーム開発者は、DirectX 11対応により、特別なレンダリング・エフェクトを大幅に利用することで、リアリズムの限界に挑めるようになった。テセレーションにより、追加のディテールをシーンに、オンザフライで(実行中に)、しかも動的に生成することが可能となった。
図は、DiRT 3でラリー車が水面を走り抜けるワイヤーフレーム・シーン。右のテセレーション前の画面には波紋がないが、テセレーション後の左側の画面には、新しいダイナミックな水の波紋のディテールがゲーム画面に加わった。
【テッセレーションは滑らかな外観のモデルを生み出す】
(出典:Nvidia 社の「DirectX 11のテッセレーション−テッセレーションの意味と重要性」の解説より)
PN三角形などの洗練アルゴリズムが、テッセレーションと伴に、粗いモデルを、より滑らかな外観のモデルへと変化させると言う。
PN三角形(アルゴリズム)は、アーティストの手を借りずに、自動的にキャラクターの外観を滑らかにすることができる。ジオメトリも照明も共に改善される。
その後、モデルはテッセレーションを通じて、細かく分割された三角形のメッシュとして再描画される。
キャラクターの関節の硬直した感じや、丸くない車輪、顔の特徴の粗さなど、今日のゲームにおいて当然のことと思われている視覚的歪みは、このアルゴリズムを用いることにより取り除くことができる。
アメリカのゲームの「Stalker: Call of Pripyat」においては、より滑らかで、より自然な外観のキャラクターを作りだすために、PN三角形が用いられているようだ。
粗いモデル(左)がテッセレーション後に、滑らかな外観のモデル(中)になり、その後ディスプレイスメントマッピングが用いられ、映画のようなリアリズムのキャラクター(右)になっている。© Kenneth Scott, id Software 2008
さて、少し技術的な専門用語でテッセレーションを簡潔に紹介して見ます。
テッセレーション機能は、DirectX 11から、3Dグラフィックス制作の論理パイプライン(下図)に追加されました。テッセレーションは、下記の3つのステージから構成されています。
【テッセレーションステージの概念図】 テッセレータ:tessellatorが追加
(出典:スクウェア・エニックス オープンカンファレンスレポート)
●VS:頂点(バーテックス)シェーダ(vertex shader)、
(テッセレーションの3つのステージ)
●HS:ハルシェーダ (hull shader)は、ポリゴンごとの曲面の制御点 (control points) の算出を行なう。
●テッセレータ (tessellaor)は、ポリゴンを実際に分割する。
●DS:ドメインシェーダ(domain shader)は、テッセレータが分割したポリゴンごとの頂点座標を算出する。ドメイン・シェーダはプログラマブル・シェーダであり、例えば(上図の)石垣模様のデータを与えることでディスプレースメント・マッピング (Displacement Mapping) が可能である。
(注記:ディスプレイスメントマップは、高さ情報を格納するテクスチャ)
●PS:ピクセルシェーダ
【本ページと関係深いページ】 :
3DCG制作入門向けパソコン -Blenderが快適
3DCGアニメ制作推奨PC - 3ds Max, Maya, Cinema 4Dなど快適