3

最近、FBXモデルがXNAで正しく表示されなかったという同じ質問を投稿しました。質問に対する回答が得られ、モデルの表示は少し良くなりましたが、それでも正しく表示されません。

https://docs.google.com/open?id=0B54ow8GRluDUYTBubTQ4bjBramM しかし、次のように表示されます: https ://docs.google.com/open?id=0B54ow8GRluDUNXR5bmJUMVJFTUk

私の描画コードは次のとおりです。

public void Draw(Matrix projection, Matrix view)
{
   Matrix[] transforms = new Matrix[model.Bones.Count];
   model.CopyAbsoluteBoneTransformsTo(transforms);

   foreach (ModelMesh mesh in model.Meshes)
   {
      foreach (BasicEffect effect in mesh.Effects)
      {
         effect.EnableDefaultLighting();
         effect.View = view;
         effect.Projection = projection;
         effect.World = Matrix.CreateRotationX(-270) *
                        transforms[mesh.ParentBone.Index] *
                        Matrix.CreateTranslation(Position);
      }
   mesh.Draw();
   }
}

誰か助けてくれませんか!ありがとう。

4

2 に答える 2

3

これが私の解決策です:

protected override void Draw(GameTime gameTime)
{

   GraphicsDevice.Clear(Color.CornflowerBlue);

   #region ResetGraphic

   ResetGraphic();

   #endregion
   #region render 3D
   BeginRender3D();
   //Render 3D here
   #endregion
   #region render 2D

   //Render 2D here
   #endregion

}

public void ResetGraphic()
{              
   GraphicsDevice.BlendState = BlendState.AlphaBlend;
   GraphicsDevice.DepthStencilState = DepthStencilState.None;
   GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;
   GraphicsDevice.SamplerStates[0] = SamplerState.AnisotropicWrap;

}

public void BeginRender3D()
{
   GraphicsDevice.BlendState = BlendState.Opaque;
   GraphicsDevice.DepthStencilState = DepthStencilState.Default;
}
于 2012-11-13T18:56:18.387 に答える
3

Xnaレンダリングされた画像が2Dおよび3Dアイテムをレンダリングしていることを示した以前の質問に基づいて、2Dと3Dの間でいくつかのグラフィックス状態をリセットすることが重要です。

具体的には、2Dのものをレンダリングした後、次の行を追加します。

GraphicsDevice.BlendState = BlendState.Opaque;
GraphicsDevice.DepthStencilState = DepthStencilState.Default;

これらの設定は3dに必要ですが、SpriteBatch.Begin()を呼び出すと変更されるため、3dのものの前に元に戻す必要があります。

これを説明するブログ投稿は次のとおりです:http: //blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

于 2012-11-12T18:11:40.067 に答える