【问题标题】:XNA weird terrain tearingXNA诡异地形撕裂
【发布时间】:2013-05-19 17:46:04
【问题描述】:

让我先发布图片...

发生撕裂的实心镜头

还有那个地方的线框图

我主要使用Riemers tutorial,而渲染代码是..

主渲染

    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 卡配置引起的......)所以我想知道是否有人有一些想法可能导致它?

【问题讨论】:

  • @DanNeely 我无法发布超过 2 个网址...这就是我削弱 Reimers 链接的原因..
  • 暂时注释掉 spritebatch 的开始、绘制和结束代码,看看是否有区别。它可能取决于缓冲区中的顶点顺序,也可能不取决于。如果确实有帮助,可以在这里找到您的解决方案:blogs.msdn.com/b/shawnhar/archive/2010/06/18/…
  • @SteveH 是的。那成功了……谢谢你!我永远不会认为 2d 文本渲染会破坏 3d 渲染......

标签: c# .net xna terrain tearing


【解决方案1】:

暂时注释掉 spritebatch 的开始、绘制和结束代码,看看是否有区别。它可能取决于缓冲区中的顶点顺序,也可能不取决于。

如果确实有帮助,可以在这里找到您的解决方案:http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

【讨论】:

  • 请总结该链接中的相关内容。如果链接失效,则该答案的主要内容将难以追查。如果讨论了不相关的问题,总结也有助于了解哪些部分适用于这个问题。
猜你喜欢
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 2011-04-04
  • 2012-06-15
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多