2010-02-26 110 views
0

一个令人困惑的问题引起了我的兴趣。在对我的游戏进行了一定程度的编程并且它正常工作之后,我已经穿过了一个模型,当我渲染它时,它不会出现在关卡中。我已经试过扩大规模,缩小规模,旋转它,检查和双重检查它的渲染矩阵位置,它似乎并没有渲染。我已经在完全相同的功能中实现了其他模型,并且它们完美呈现。虽然我不认为模型存在问题(顺便说一下,我所有的模型都是“.X”文件),因为当模型通过DxViewer打开时,模型显得很完美。所以我不确定可能导致这个问题发生的原因。XNA渲染问题

临时代码,我用它来检查的车型将如何看待在游戏中的一个样本:

static public void RenderTmp(Model model, float scale) 
    { 
     foreach (ModelMesh mesh in model.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      {                
       effect.PreferPerPixelLighting = true; 

       effect.World = Matrix.CreateScale(scale) * Matrix.CreateTranslation(0, 0, 0); 

       effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(90), Globals.g_Device.Viewport.AspectRatio, 1, 1000); 
       effect.View = Matrix.CreateLookAt(new Vector3(0, 50, 0), new Vector3(0, 0, 0), Vector3.Forward); 
      } 
      mesh.Draw(); 
     } 
    } 

我现在认为这可能是从3ds Max软件本身的出口问题,我在检查代码并且我不相信这是问题所在。

+1

你可以发布一些代码给我们看看 – harryovers 2010-02-26 14:23:44

+0

嘿家伙,嗯我相当肯定,法线正面临正确的方式,因为它在DxViewer中显示正确(有没有其他方式可以检查法线)。是的,模型正在使用的纹理正在与应用程序一起编译(如果找不到模型的纹理,c#将不会编译)。 – 2010-02-27 05:45:43

回答

0

我现在认为这可能是3DS Max本身的一个导出问题,我一遍又一遍地检查了代码,我不相信这是问题所在。

谢谢你的帮助彼得。

0

法线是否指向正确的方向?模型使用的所有纹理是否与应用程序一起编译?