モデルの向きが正しくわかりません。このプロジェクトでは、ユーザーは3つのDXFファイルをロードします。
- DXF 1は、3dfacesで表されるモデルです。
- DXF 2は、左側通行としてのカメラのパスを表す3dpolyです。
- DXF 3は、対向トラフィックのパスを提供する3dpolyです。
最初の2つのデータセットは、C#/XNA開発で正しく処理されます。ユーザーは、キーボードの上下のキーを使用して道路に沿って運転できます。しかし、私は3番目のプロセスで失敗します。対向車の向きがわかりません。位置は問題ありません。100メートルごとに1台のバンがありますが、向きが間違っています。
最も奇妙なのは、モデルを正しい場所に変換する通常の方法であり、向きによってモデルがカメラの上に配置されます。どこで私は間違えましたか?次のURLでソースコードを利用できるようにしたので、コードを表示して、どこで問題が発生したかを確認できます(zipにはテストに使用したDXFファイルが含まれています)。
http://www.4shared.com/zip/Lk3xmCtO
よろしくお願いします。ケビン。
これは最も間違った部分です:
Matrix worldMatrix = Matrix.CreateTranslation(VanPos[vi]);
Matrix[] transforms = new Matrix[Van.Bones.Count];
Van.CopyAbsoluteBoneTransformsTo(transforms);
foreach (ModelMesh modmesh in Van.Meshes)
{
foreach (BasicEffect be1 in modmesh.Effects)
{
be1.World = transforms[modmesh.ParentBone.Index] * worldMatrix;
これにより、モデルがカメラの位置に配置されます。CreateTranslationだけを使用すると、モデルが正しい場所に配置されますが、向きが正しくありません。