Разрыв странной местности XNA

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

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

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

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

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

    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-карты ...), поэтому мне интересно, есть ли у кого-нибудь идеи, что может вызвать это?


person Fireant    schedule 19.05.2013    source источник
comment
@DanNeely, я не смог опубликовать более двух URL ... вот почему я искалечил ссылку Reimers ..   -  person Fireant    schedule 19.05.2013
comment
Временно закомментируйте код начала, отрисовки и завершения пакета спрайтов и посмотрите, имеет ли это значение. Это может или не может зависеть от порядка вершин в буфере. Если это поможет, ваше решение можно найти здесь: blogs.msdn.com/b/shawnhar/archive/2010/06/18/   -  person Steve H    schedule 19.05.2013
comment
@SteveH Да. Это помогло ... Большое спасибо! Никогда бы не подумал, что рендеринг 2D-текста может нарушить 3D-рендеринг ...   -  person Fireant    schedule 19.05.2013


Ответы (1)


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

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

person Steve H    schedule 20.05.2013
comment
Кратко опишите соответствующий контент, найденный в этой ссылке. Если ссылка отключится, будет сложно отследить основную суть этого ответа. Обобщение также помогает понять, какие части применимы к этой проблеме, если обсуждаются не относящиеся к делу вопросы. - person jpmc26; 16.02.2017