一個令人困惑的問題引起了我的興趣。在對我的遊戲進行了一定程度的編程並且它正常工作之後,我已經穿過了一個模型,當我渲染它時,它不會出現在關卡中。我已經試過擴大規模,縮小規模,旋轉它,檢查和雙重檢查它的渲染矩陣位置,它似乎並沒有渲染。我已經在完全相同的功能中實現了其他模型,並且它們完美呈現。雖然我不認爲模型存在問題(順便說一下,我所有的模型都是「.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軟件本身的出口問題,我在檢查代碼並且我不相信這是問題所在。
你可以發佈一些代碼給我們看看 – harryovers 2010-02-26 14:23:44
嘿傢伙,嗯我相當肯定,法線正面臨正確的方式,因爲它在DxViewer中顯示正確(有沒有其他方式可以檢查法線)。是的,模型正在使用的紋理正在與應用程序一起編譯(如果找不到模型的紋理,c#將不會編譯)。 – 2010-02-27 05:45:43