フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 10.1に関して | トップページ | GPUでのプロシージャル処理 »

2008.03.08

GSで頂点分割

DirectX SDKのサンプルにも頂点分割のサンプルが入ってきましたね>SubD10サンプル。

Microsoft Researchの下記のドキュメントに詳細があります。

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches
http://research.microsoft.com/~cloop/msrtr-2007-44.pdf

Geometry Shader(GS)での頂点分割は、当初から想定されてたテクニックですが、先日紹介したNVIDIA SDK 10.5での例やATI SDKでのNパッチのGSでの実装(GS-NPatch-Tessellation (June 2007))などサンプルが充実してきた感じですね。

SDKのドキュメントを1見するとSubD10では、Nパッチのように三角形ベースではなく四角形ベースで分割してるんですね。

Sub10a
分割前(クリックすると大きなサイズになります)

Sub10b
8分割(クリックすると大きなサイズになります)

よく見るとライティングは、Per-pixelなのでポリゴンの粗さ関係ないんだよなぁ(Diffuseでの陰の話ですが)。Per-pixelで陰影付けするならポリゴンを密にするより法線マッピングの方が有効だよなぁ(余談ですが)。

ワイヤーフレームの表示なしが下記の例で、ディスプレースメントッピングの例(Bump mapでそのまま頂点の変位。係数は3.00)。この場合は、メッシュが密じゃないとディスプレースメントッピングを適用しても変異できないので分割の効果が出てますね。この手法のメリットとしてはディスプレースメントマップがあればローポリゴンでOKなのでデータ量が小さくなる?あとは、視点からの距離依存で分割を制御すれば、遠くのときは分割を減らして負荷を軽くするという手が使えますね(つまりGPUでLODの制御)。

Bun001>
分割なし(クリックすると大きなサイズになります)

Bun002>
31分割(クリックすると大きなサイズになります)

« 10.1に関して | トップページ | GPUでのプロシージャル処理 »

Programming」カテゴリの記事

画像付き」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 10.1に関して | トップページ | GPUでのプロシージャル処理 »