Я собираюсь смоделировать движение автомобилей по дорожной сети. Сначала я рисую дороги с помощью 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 это лучше, но на ЭТОМ новом изображении проблема видно... через очки машины мы можем видеть только вершины, нарисованные пользовательскими индексированными примитивами, а не модели.
View
иProjection
? - person pinckerman   schedule 17.08.2013