xファイルを表示するのに挑戦しています。
DirectX のサンプルにある、[ tiger.x ] を表示するプログラムを組んだのですが、
ポリゴンのみ表示され、テクスチャーは表示されず、真っ黒の状態です。
ソースコード一式をアップロードしました。
どこが悪いのかをご指摘ください。
参考書にある、作者のメールアドレスはすでに使われていなくて、どこに
相談したらいいのかがわからず、ここで質問させてください。
環境は、Visual C++ 2010 Express
DirectX SDK 9.0 と DirectX SDK 2010 Summer ← うるおぼえ
です。
xファイルを表示できない
xファイルを表示できない
- 添付ファイル
-
- [2013 07 16] DirectX 3D.zip
- (338.81 KiB) ダウンロード数: 149 回
Re: xファイルを表示できない
この場合、実はソースコードが悪いとは限らないんですよね
その[ tiger.x ]と言うのをテキストエディタで開いて
テクスチャのパスがキチンと設定されているか確認してください
テクスチャのファイル名で検索すればヒットするハズです
とりあえず確認しておいて損はないと思いますよ
いえ、別にソースコードを読むのが面倒だったとかそういう訳じゃなくってですね・・・w
その[ tiger.x ]と言うのをテキストエディタで開いて
テクスチャのパスがキチンと設定されているか確認してください
テクスチャのファイル名で検索すればヒットするハズです
とりあえず確認しておいて損はないと思いますよ
いえ、別にソースコードを読むのが面倒だったとかそういう訳じゃなくってですね・・・w
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ
Re: xファイルを表示できない
・Xファイル作成時にテクスチャパスが相対パスではなく絶対パスになっているケース
・Xファイルのテクスチャは「実行ファイルからの相対パス」になっていないケース
Xファイルでテクスチャが表示されないのは大体この2種類が原因だと思います。
・Xファイルのテクスチャは「実行ファイルからの相対パス」になっていないケース
Xファイルでテクスチャが表示されないのは大体この2種類が原因だと思います。
Re: xファイルを表示できない
MeshMaterialList {
1;
1;
0;;
Material {
0.694118;0.694118;0.694118;1.000000;;
50.000000;
1.000000;1.000000;1.000000;;
0.000000;0.000000;0.000000;;
TextureFilename {
"tiger.bmp";
}
}
上が、Xファイルの テクスチャのところです。
パスはあっているはずです。
ネカフェのパソコンなので、SDKやらのツールがないので、確認はとれていません。
ここでは、あまりよい情報が得られないのでマルチポストをします。
1;
1;
0;;
Material {
0.694118;0.694118;0.694118;1.000000;;
50.000000;
1.000000;1.000000;1.000000;;
0.000000;0.000000;0.000000;;
TextureFilename {
"tiger.bmp";
}
}
上が、Xファイルの テクスチャのところです。
パスはあっているはずです。
ネカフェのパソコンなので、SDKやらのツールがないので、確認はとれていません。
ここでは、あまりよい情報が得られないのでマルチポストをします。
Re: xファイルを表示できない
9-1 メッシュの読み込み
D3DXLoadMeshFromX();
*buffer = GetBufferPointer();
マテリアル
Release( buffer );
法線データの記述がない Xファイルのとき (tiger.x)
if( (GetFVF() & D3DFVF_NORMAL) == 0 )
FVF = GetFVF() | D3DFVF_NORMAL;
CloneMeshFVF( FVF, &Mesh );
D3DXComputeNormals( Mesh ); // 各頂点の法線を計算する。
D3DXLoadMeshFromX();
*buffer = GetBufferPointer();
マテリアル
Release( buffer );
法線データの記述がない Xファイルのとき (tiger.x)
if( (GetFVF() & D3DFVF_NORMAL) == 0 )
FVF = GetFVF() | D3DFVF_NORMAL;
CloneMeshFVF( FVF, &Mesh );
D3DXComputeNormals( Mesh ); // 各頂点の法線を計算する。