モデルを画面に描画したい。ここに私のコードです:XNA 3Dグラフィックス - 私のコードの意味?
保護されたオーバーライド無効ドロー(GameTime gameTime) {
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
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.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY(modelRotation) *
Matrix.CreateTranslation(modelPosition);
effect.View = Matrix.CreateLookAt(cameraPosition,
Vector3.Zero, Vector3.Up);
effect.Projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(45.0f), aspectRatio,
1.0f, 10000.0f);
}
mesh.Draw();
}
base.Draw(gameTime);
}
しかし、私は削除する場合:
行列[]トランスフォーム=新しいMatrixを[ model.Bones.Count]; model.CopyAbsoluteBoneTransformsTo(transforms);ループ内
及び変更コード:
effect.World = Matrix.CreateRotationY(modelRotation)。
まだ正常です。だからなぜ私のプロジェクトに上記のコードを追加する必要がありますか?それの利点は何ですか?どうもありがとう!
これはMSDNページのサンプルコードです。だから私はそれを理解していない。ご回答有難うございます :) – beanhorstmann