ニュース
[GDC 2009#23]こんな割れ方をしていたなんて! DirectX 11テッセレーションの動作を探る
DirectX 11のテッセレーションデモを見る
さて,DirectX 11のテッセレーション(Tessellation,あるポリゴン面を,複数のポリゴン面へと細かく分割すること)用SDK(Software Development Kit,ソフトウェア開発キット)では,「Cutmull-Clark」分割アルゴリズムが実装されているとのことだ。ほかのアルゴリズムを利用することもできるようだが,Cutmull-Clarkは,さまざまなツールで採用されていて,事実上の業界標準といえるため,これを使うことがSDKでは想定されている,といった感じか。
Cutmull-Clarkのアルゴリズムのままでは,設定値ごとに4倍(2×2)で頂点数が増えていくのだが,このデモでは,もっと段階的に増やせるよう,「Charles Loop」と「Scott Schaefer」による双三次近似が適用されているという。
ちょっと難しいので,以下,流してもらってもかまわない前提で,突っ込んだ説明は行わないが,与えられた四角形の基本パッチに対し(※Loop-Schaeferの近似は現状では四角形にしか使えないらしい),四角形の4辺それぞれで分割数が指定されていることも分かる。辺ごとで独立して,ほとんど無段階に分割数を増やせるものが,今回のデモには実装されているようだ。
実際問題として,左辺を23.16個に割り,上と右は1個,下側は11.21個に分割するといわれても想像しにくいのだが,そんなこともできるらしい。
また,分割モードもいろいろあるので,これだけでもかなり多彩な面分割が可能になる。
ちなみに,Direct3D 11におけるテッセレーションの最大レベルは64。1辺を最大64個に分割できる仕様になっているようで,DirectX 11世代のハードウェアに要求される演算能力はとてつもないものになりそうだ。
- 関連タイトル:
DirectX
- この記事のURL: