2011-12-20 22 views
2

問題があります。 私のモデルをXNA 4.0でレンダリングしようとすると、テクスチャのいくつかの場所が壊れてしまいます。テクスチャ自体に何か問題があるのですか、何か間違っていますか?モデルとテクスチャはBlenderからエクスポートされます。私は色のキーを無効にしようとしました。XNA 4.0モデルテクスチャの問題

スクリーンショット:ここ

http://i43.tinypic.com/2evg56u.jpg

は私の描画メソッドです:SpriteBatchオブジェクトが呼び出された後、これが変更されますよう

protected override void Draw(GameTime gameTime) 
    { 
     GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.CornflowerBlue, 1.0f, 0); 

     DrawModel(model, position); 

     spriteBatch.Begin(); 
     spriteBatch.DrawString(font, "Camera\nX = " + cameraPosition.X.ToString() + 
            "\nY = " + cameraPosition.Y.ToString() + 
            "\nZ = " + cameraPosition.Z.ToString(), new Vector2(10, 10), Color.White); 
     spriteBatch.DrawString(font, "Look at\nX = " + cameraLookAt.X.ToString() + 
            "\nY = " + cameraLookAt.Y.ToString() + 
            "\nZ = " + cameraLookAt.Z.ToString(), new Vector2(10, 150), Color.White); 
     spriteBatch.End(); 

     base.Draw(gameTime); 
    } 

    void DrawModel(Model model, Vector3 position) 
    { 
     foreach (ModelMesh mesh in model.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      { 
       effect.EnableDefaultLighting(); 
       effect.SpecularColor = new Vector3(0.25f); 
       effect.SpecularPower = 16; 

       effect.World = Matrix.CreateTranslation(position); 
       effect.Projection = projection; 
       effect.View = view; 
      } 

      mesh.Draw(); 
     } 
    } 
+0

デプスバッファを有効にしましたか? CullModeの状態を考えましたか? – Blau

+0

ご返信ありがとうございます。私はCullModeを試しましたが、それは役に立たず、デプスバッファがデフォルトで有効になっているはずですが、Neil Knighの答えは私の問題を解決しました。 – benderto

答えて

0

はあなたDepthStencilStateを確認してください。 SpriteBatch.End()呼び出し後にDefaultをリセットする必要がある場合があります。

+0

ありがとうございました、私の問題を解決しました:) 'SpriteBatch'が呼び出されたときに' DepthStencilState'が変更されていることに気付きませんでした。 – benderto