protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); device = graphics.GraphicsDevice; texturedEffect = Content.Load<Effect>("effect"); billboardGrassEffect = Content.Load<Effect>("billboardgrass"); grassEffect = Content.Load<Effect>("nonbillboardgrass"); skyEffect = Content.Load<Effect>("sky"); pointSpriteEffect = Content.Load<Effect>("PointSprite"); waterEffect = Content.Load<Effect>("watereffect"); shadowMapEffect = Content.Load<Effect>("shadowmap"); enviro = new Enviroment(); terrain = new TextureTerrain(this, enviro.map, enviro.texture); cam = new Camera(this,new Vector3(terrain.terrainWidth/2,15,terrain.terrainLength/2)); controls = new Controls(this); if (enviro.billboardedGrass) bbgrass = new BBGrass(this, terrain, enviro.grassTexture); else grass = new Grass(this, terrain, enviro.grassTexture); fps = new FrameRate(); text = new TextWriter(this, "font"); sky = new SkyBox(this, Vector3.Zero, "sky/dome2/dome"); car = new ModelLoader(this, "car/car", new Vector3(250, terrain.heightData[250, 230], 230), 1, 7); human = new ModelLoader(this, "human", new Vector3(terrain.terrainLength / 2, terrain.heightData[terrain.terrainLength / 2, terrain.terrainWidth / 2], terrain.terrainWidth / 2), 0.2f); moon = new PointSprites_Single(this, new Vector3(-10000, 20000, -10000), Content.Load<Texture2D>("moon"), 5000); snow = new PointSprites_Multi(this, cam.cameraPosition, Content.Load<Texture2D>("snow"), enviro.weatherParticles, 0.2f, rand); rain = new PointSprites_Multi(this, cam.cameraPosition, Content.Load<Texture2D>("rain"), enviro.weatherParticles, 0.2f, rand); water = new Water(this, terrain.terrainWidth / 10, terrain.terrainLength / 10, 10, Content.Load<Texture2D>("water"), Content.Load<Texture2D>("waterbump")); for (int i = 0; i < cloudTextures.Length; i++) { cloudTextures[i] = Content.Load<Texture2D>("clouds/cloud" + i); } clouds = new PointSprites_Single[500]; for (int i = 0; i < clouds.Length; i++) { clouds[i] = new PointSprites_Single(this, new Vector3(terrain.terrainLength / 2f + (float)(rand.NextDouble() * 2 - 1) * 10000, rand.Next(400, 600), terrain.terrainWidth / 2f + (float)(rand.NextDouble() * 2 - 1) * 10000), cloudTextures[rand.Next(0,5)], 1000); } shadowMap = new RenderTarget2D(device, 2048, 2048); }