protected override void Draw(GameTime gameTime) { device.DepthStencilState = DepthStencilState.Default; DrawShadow(); if (enviro.detailWater) { if (!enviro.underWater) { water.DrawRefractionMap(2); water.DrawReflectionMap(1); } else { water.DrawRefractionMap(1); water.DrawReflectionMap(2); } } device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.White, 1.0f, 0); bloom.BeginDraw(); sky.Draw(cam.cameraPosition + new Vector3(0, -100, 0), cam.viewMatrix, 0); device.BlendState = BlendState.NonPremultiplied; moon.Draw(cam.viewMatrix); device.DepthStencilState = DepthStencilState.DepthRead; foreach (PointSprites_Single x in clouds) { x.Draw(cam.viewMatrix); } terrain.Draw(cam.viewMatrix, 0); water.Draw(); if (enviro.billboardedGrass) { bbgrass.Draw(0, cam.viewMatrix); } else { grass.Draw(0, cam.viewMatrix); } car.Draw(cam.viewMatrix, 0); human.Draw(cam.viewMatrix, 0); if (enviro.enableSnow) { snow.Draw(cam.viewMatrix); } if (enviro.enableRain) { rain.Draw(cam.viewMatrix); } base.Draw(gameTime); spriteBatch.Begin(); text.Write(fps.frameRate + " FPS\nCampos: " + cam.cameraPosition + "\nDepth Bias: " + enviro.depthbias + "\nPress ENTER to bring up menu" + "\nHold SHIFT for faster camera" , new Vector2(), Color.Yellow); controls.Draw(spriteBatch); spriteBatch.End(); fps.Count(); }