0

道路網上での車の移動をシミュレートします。まず、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 によって描画された頂点のみが表示され、モデルは表示されません。

4

1 に答える 1