スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スキンメッシュアニメーション実装の際の、内部のデータ構造公開!(DirectX)

ゴチャゴチャになって何回修正したか分からないんですが、

スキンメッシュアニメーションを実装した際に、
内部でデータをどういう風に持って、どういう手順で描画しているのか?
現在の状態を書いてみます。

まず、簡単に描画方法の説明。
-------------------------------------
・インデックスブレンディング使用
・複数のストリームを使用
・DrawIndexedPrimitive関数を使用
・D3DTS_WORLDMATRIXマクロで、複数の行列を使用

-------------------------------------
大体こんな感じになってます。

これだけじゃ意味が分からないと思うので、
詳細を説明します。

手順としては、下記のようになります。
----------------------------------------------
【1】インデックスブレンディングを有効にする
【2】3つの重みを使用する設定にする
【3】頂点宣言をセット
【4】ストリームごとのバッファをセット
【5】テクスチャをセット
【6】マテリアルをセット
【7】インデックスをセット
【8】複数の座標変換行列をセット
【9】DrawIndexedPrimitive関数で描画

----------------------------------------------
見ての通り、描画の前にセットする情報が多いです。


これでもまだイマイチ分からないと思うので、
更に 図 & ソースコード例を書きます。

まず、今回の為にサンプルXファイルを作りました。
※全部 手打ちです。
(Xファイルの書式を理解できれば、メタセコイア等のソフトを使わなくても、
   メモ帳を開いてキーボード入力でXファイルが作れるのである。

【Xファイルサンプル】SkinSample.txt

上記のXファイルは、
図で描いてまとめると下記のようになります。

【参考画像】
NowSkin1.jpg

要は、四角のポリゴンに絵を貼り付けてるだけです。
頂点0・1・2を結んだ三角形と、頂点1・3・2を結びつけた三角形
D3DPT_TRIANGLELISTで描画している訳ですね。
(SkinSample.txtと見比べながら見てみよう!)


では、このXファイルサンプルの場合、
先ほどの【1】~【9】の手順だと、どのようになっていくのかを
見てみましょう。




<追記予定!>
現在、FC2のファイルアップロードの調子がよろしくないので、
記事完成が遅れるかもしれません。
(アップロード機能の他に、アクセスカウンタとかも時々壊れたりするから困る。)
スポンサーサイト

テーマ : 日記 - ジャンル : 日記

コメント
コメントの投稿
管理者にだけ表示を許可する



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。