XNA странный разрыв ландшафта

Позвольте мне сначала опубликовать изображения...

Сплошной выстрел, где происходит разрыввведите описание изображения здесь

И каркасный снимок этого места введите описание изображения здесь

Я в основном использую в основном учебник Riemers, в то время как код рендеринга..

Основной рендер

    public void Render()
    {
        device.Clear(Color.CornflowerBlue);
        RasterizerState rs = new RasterizerState();
        rs.CullMode = cullmode;
        rs.FillMode = fillmode;
        device.RasterizerState = rs;

        effect.Parameters["xView"].SetValue(camera.ViewMatrix);
        effect.Parameters["xProjection"].SetValue(camera.ProjectionMatrix);
        effect.Parameters["xWorld"].SetValue(Matrix.Identity);
        effect.Parameters["xEnableLighting"].SetValue(true);
        effect.Parameters["xLightDirection"].SetValue(lightDirection);
        effect.Parameters["xAmbient"].SetValue(0.5f);

        globals.game.terrain.Render();

        globals.game.spriteBatch.Begin();
        globals.console.Render();
        globals.game.spriteBatch.End();
    }

Terrain.Render()

    public void Render()
    {
        globals.game.graphics.effect.CurrentTechnique = globals.game.graphics.effect.Techniques["Colored"];

        globals.game.graphics.effect.Parameters["xWorld"].SetValue(worldMatrix);
        foreach (EffectPass pass in  globals.game.graphics.effect.CurrentTechnique.Passes)
        {
            pass.Apply();

            globals.game.graphics.device.Indices = indexBuffer;
            globals.game.graphics.device.SetVertexBuffer(vertexBuffer);
            globals.game.graphics.device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, vertices.Length, 0, indices.Length / 3);          

        }
    }

Я застрял с этой проблемой довольно долго (не зная, вызвано ли это моими навыками кодирования, xna или какой-то конфигурацией g-карты...), поэтому мне интересно, есть ли у кого-нибудь какие-нибудь идеи, что может вызвать это?

1 ответ

Решение

Временно закомментируйте код начала, прорисовки и завершения spritebatch и посмотрите, будет ли это иметь значение. Это может или не может быть в зависимости от порядка вершин в буфере.

Если это поможет, ваше решение можно найти здесь: http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

Другие вопросы по тегам