小编cod*_*een的帖子

c#XNA低帧率

好吧,我有80,000个"盒子"网格物体和简单的纹理我设置了一个视图距离,只绘制了你可以看到的那些为下面的DrawModel函数留下600到1000的问题.问题是我每秒只得到10帧和我的视距很糟糕另外,我已经对我的所有代码进行了内存测试,"mesh.draw()"每秒关闭30帧.没有别的东西接近那么多.有帮助吗?

        private void DrawModel(MeshHolder tmpMH)
        {          
            Model tmpDrawModel = (Model)_Meshs[tmpMH.MeshFileName];
            Matrix[] transforms = new Matrix[tmpDrawModel.Bones.Count];
            tmpDrawModel.CopyAbsoluteBoneTransformsTo(transforms);
            foreach (ModelMesh mesh in tmpDrawModel.Meshes)
            {
                foreach (BasicEffect effect in mesh.Effects)
                {

                    effect.LightingEnabled = false;

                    effect.TextureEnabled = true;
                    effect.Texture = (Texture2D)_Textures[tmpMH.GetTexture(Count)]; 



                    effect.View = _MainCam.View;
                    effect.Projection = _projection;
                    effect.World =
                         transforms[mesh.ParentBone.Index] *
                        Matrix.CreateFromYawPitchRoll(tmpMH.Rotation.Y, tmpMH.Rotation.X, tmpMH.Rotation.Z) *
                        Matrix.CreateScale(tmpMH.Scale) *
                        Matrix.CreateTranslation(tmpMH.Position);
                }

                    mesh.Draw();               
            }
        }
Run Code Online (Sandbox Code Playgroud)

c# xna frame-rate mesh draw

6
推荐指数
2
解决办法
1515
查看次数

标签 统计

c# ×1

draw ×1

frame-rate ×1

mesh ×1

xna ×1