2010年5月15日土曜日

久しぶりにVC++を使ってみると・・・・

とりあえず、Xファイルからのモデル表示だけは、
(完全には程遠いいものの)自前のJAVA3Dライブラリに機能追加することができた。

[機能]
Xファイルから
フレーム
メッシュ
メッシュ法線
メッシュテクスチャ
メッシュマテリアル
マテリアル
部分をパーサし、Javaアプレットでモデル表示を行う


Xファイルからの
スキンウェイトとアニメーションの実装は、
結構難しくまだできていない。

ところで久しぶりにVC++を使って
解析のためにある情報をデバッグウィンドウに表示したかったのだが
今使用しているのはMicrosoft Visual C++ 2008 Express Editionなので
TRACEマクロが使えない。結構不便である。
printf
cout
なども使ってみたができない。
(もちろんできるわけないのはわかっているけど、とにかくいろいろとやってみたりした)
本当になさけない状態であった。
VC++自体も2年ぶりにさわったので、どうもいろいろと忘れていることが多く
使っていて、ものすごく不器用になってしまったたような気がした。

いろいろと調べているうちに

OutputDebugString
http://msdn.microsoft.com/ja-jp/library/cc428973.aspx

を使えば表示できることがわかった。


解析したい部分に、以下のような感じで追加してみたりした。

#ifdef _DEBUG
char debug[512];
sprintf(debug,"■%s \n",name);
OutputDebugString(debug);
#endif




void CHogeHoge::TraceMatrix(const char* name) {

#ifdef _DEBUG
char debug[512];
sprintf(debug,"■%s \n",name);
OutputDebugString(debug);
int limit = fr.size();
for(int i=0;iMatrix._11,fr[i]->Matrix._12,fr[i]->Matrix._13,fr[i]->Matrix._14 );
OutputDebugString(debug);
sprintf(debug,"%f %f %f %f\n",fr[i]->Matrix._21,fr[i]->Matrix._22,fr[i]->Matrix._23,fr[i]->Matrix._24 );
OutputDebugString(debug);
sprintf(debug,"%f %f %f %f\n",fr[i]->Matrix._31,fr[i]->Matrix._32,fr[i]->Matrix._33,fr[i]->Matrix._34 );
OutputDebugString(debug);
sprintf(debug,"%f %f %f %f\n",fr[i]->Matrix._41,fr[i]->Matrix._42,fr[i]->Matrix._43,fr[i]->Matrix._44 );
OutputDebugString(debug);
}

#endif


}



とりあえず、来週までに、
JAVA3Dアプレットに
Xファイルからのスキンウェイトとアニメーションの
読み込みとアニメーションの実装を行いたい。

0 件のコメント:

コメントを投稿