多くの開発者がおそらく解決策を見つけたという問題に直面しています。小さな立方体 (100X100) で設計された床を持つ小さなプロジェクトがあります。この制限を超えると、ゲームが大幅に遅くなり、ラグが発生します。
床を描く方法は次のとおりです。
//Function to draw my ground ( 100 X 100 X 1)
public void DrawGround(GameTime gameTime)
{
// Copy any parent transforms.
Matrix[] transforms = new Matrix[this.model.Bones.Count];
this.model.CopyAbsoluteBoneTransformsTo(transforms);
//loop 1 cube high
for (int a = 0; a < 1; a++)
{
//loop 100 along cube
for (int b = 0; b < 100; b++)
{
//loop 100 cubic wide
for (int c = 0; c < 100; c++)
{
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in this.model.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateTranslation(this.position);
effect.View = this.view;
effect.Projection = this.projection;
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
}
}
}
}
[VertexBuffer]「グラフィックスカードのメモリ」を利用した方が良いと思いますが、やりたいチュートリアルが見当たりません…
関数 "DrawGround" で [VertexBuffer] を使用する例を教えてください。 どうもありがとうございました!