FBXファイルから3Dモデルをインポートする際に問題が発生しました。
ソースモデルには575個のオブジェクトと1台のカメラが含まれており、次のようになります。http: //habreffect.ru/files/23d/542fa7f67/source_model.png
コンテンツパイプラインモデルで準備されたXNAには、82個のメッシュと576個のボーンが含まれています。したがって、モデルを描画すると、ソースモデルの一部しか表示されません。次のような結果の画像:http: //habreffect.ru/files/28a/6e61c0215/Result_view.png
私の描画コード:
GraphicsDevice.Clear(Color.CornflowerBlue);
Matrix[] transforms = new Matrix[_model.Bones.Count];
_model.CopyAbsoluteBoneTransformsTo(transforms);
foreach (var mesh in _model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.LightingEnabled = true;
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] * _world;
effect.View = _view;
effect.Projection = _proj;
}
mesh.Draw();
}
base.Draw(gameTime);
XNAのModelインスタンスで575メッシュすべてを取得するにはどうすればよいですか?
ありがとう!
UPD:FBXモデルを3ds maxにインポートし、すべてのメッシュを選択して、[選択したエクスポート]を使用しようとしました。結果のFBXファイルは11倍大きくなります。次に、それをコンテンツとしてXNAプロジェクトに追加します。ロードされたモデルには、575個のメッシュがすべて含まれており、正しくレンダリングされます。
残念ながら、この手動変換方法は私には適していません。可変リポジトリからさまざまなfbxモデルをレンダリングする必要があります。
では、どのFBXファイルがXNAコンテンツプロセッサに「適している」のでしょうか(私はXNA 4を使用しています)。