public void Draw()
{
Game.GraphicsDevice.SetVertexBuffer(vertexBuffer);
Game.GraphicsDevice.Indices = indexBuffer;
effect.Parameters["View"].SetValue(camera.View);
effect.Parameters["Projection"].SetValue(camera.Projection);
effect.Parameters["TextureTiling"].SetValue(textureTiling);
effect.Parameters["LightDirection"].SetValue(lightDirection);
effect.Parameters["BaseTexture"].SetValue(baseTexture);
effect.Parameters["RTexture"].SetValue(RTexture);
effect.Parameters["GTexture"].SetValue(GTexture);
effect.Parameters["BTexture"].SetValue(BTexture);
effect.Parameters["WeightMap"].SetValue(WeightMap);
effect.Parameters["DetailTexture"].SetValue(DetailTexture);
effect.Parameters["DetailDistance"].SetValue(DetailDistance);
effect.Parameters["DetailTextureTiling"].SetValue(DetailTextureTiling);
effect.Techniques[0].Passes[0].Apply();
Game.GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0,
nVertices, 0, nIndices / 3);
}
Terrain::Draw ( |
// Called when the game should draw itself protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); water.PreDraw(camera, gameTime); GraphicsDevice.Clear(Color.Black); sky.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Position); foreach (CModel model in models) { if (camera.BoundingVolumeIsInView(model.BoundingSphere)) { model.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Position); } } terrain.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Position); water.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Position); trees.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Up, ((FreeCamera)camera).Right); grass.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Up, ((FreeCamera)camera).Right); clouds.Draw(camera.View, camera.Projection, ((FreeCamera)camera).Up, ((FreeCamera)camera).Right); base.Draw(gameTime); }