道路網上での車の移動をシミュレートします。まず、userindexedprimitives を使用して道路を描画すると、問題なく動作します。その後、特定の瞬間にモデルをシーンに追加します。これらのモデルは道路上を移動しており、問題ないようです。後ろから見ると、おおまかに作成順に並んでいるので良さそうです。しかし、正面図では、アプリは常に最後に追加された車両を最初に描画します。したがって、それらは互いに描画され、カバーはありません。おそらく、画像で認識できます(リンクは削除されました。更新を参照してください)。私が使用している効果ファイルはこれです、CurrentTechnique は「ColoredNoShading」です。最初はこの設定に問題があるのではないかと考えましたが、他の可能性として頂点情報 (COLOR0 や NORMAL など) の欠落に関する例外がスローされ、対処できませんでした...おそらく解決策は非常に単純です。わからない...
誰かがこれで私を助けてくれますか?
前もって感謝します
コードは次のスキームに基づいています。
private void DrawModel(Model model, Matrix world, Matrix view, Matrix projection)
{
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.World = world;
effect.View = view;
effect.Projection = projection;
}
mesh.Draw();
}
}
ビューとプロジェクション マトリックスに関連するもの:
viewMatrix = Matrix.CreateLookAt(new Vector3(0, 170, 0), new Vector3(0, 0, 0), new Vector3(0, 0, -1));
projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, graphics.GraphicsDevice.Viewport.AspectRatio, 1.0f, 30000.0f);
effect.CurrentTechnique = effect.Techniques["ColoredNoShading"];
effect.Parameters["xProjection"].SetValue(projectionMatrix);
effect.Parameters["xView"].SetValue(viewMatrix);
アップデート:
DepthStencilState プロパティを使用すると改善されますが、この新しい画像では問題が見られます...ビークルのメガネを通して、userindexedprimitives によって描画された頂点のみが表示され、モデルは表示されません。