Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!

log

2010.04.14 C++:モデルを新しいモデルに差し替え

ファイル 266-1.jpg

今まで、新しくコンバートする作業が面倒でキャラクターをずっと昔に
出力したXファイルモデルを使い続けていましたが、そろそろ
モーション切り替えを実装しないと格好がつかないなと思い、
新しいモデルの方でXファイルを作成してみたものの。。

読み込んでみると、なぜかモデルだけ全く描画されないという問題が!!

色々試してみて、シェーダに渡す定数レジスタ数をオーバーした場合に
発生する問題だということが分かったので、とりあえずいらない
フレームを消して無事表示させたのはいいんですが、一度に
使用できるフレーム数が79個って少ないなあ。。まだ髪の
ボーンを分けていないので、どうしたものか。悩みます。。

とりあえず頂点テクスチャを使用して、テクスチャにスキニング行列を
格納させることでレジスタ数の問題を解決させることができますが、
一般的には頂点テクスチャは浮動小数点テクスチャを使用するので
サポートしていないGPUとかいくつかあるんじゃないかな、と思うわけです。

それともう一つ、新しいモデルにモーションをコンバートさせようと思い
LWのMap Motion2でhmotファイルを読み込もうと思ったら
なぜか強制終了してしまい、うまくいかない問題が発生。
LWさんは、モーション関係の不都合が本当に多いです。
とりあえずMotion Mixerでhmotファイルを読み込んで、
適当なキーにプロットすることでモーションをコンバートさせましたが
キーを適当に打ったばっかりに、プログラムの方で読み込んでみると
前よりもさらに下手糞なモーションになってしまいました。。

コンバート関係はできたら自作プログラムでやるのがいいんだろけど、大変だ。

comment

たけなか 2010.04.14-03:21 Edit

前から思ってたけど、モーションの足部分が少し開き気味になって
蟹股みたいになっているので、ちゃんと直さないと。。

たけなか 2010.04.14-08:42 Edit

おかしい…。
現在シェーダの定数レジスタを246個使っていて、残り10個使える
はずだから、もう3個行列が追加できるはずなのに。。

ひょっとして、HLSLは行列転置用に8個定数レジスタを使用している
とかかな。HLSLも結局アセンブラコードに還元されるからそれっぽいな。