Пример #1
0
        public BBGrass(Game1 newGame, TextureTerrain newTerrain, string newTexture)
        {
            Game = newGame;
            terrain = newTerrain;
            bbtex = Game.Content.Load<Texture2D>(newTexture);
            SetUpBillboards();
            CopytoBuffers();

            Game.billboardGrassEffect.Parameters["xTexture"].SetValue(bbtex);
            Game.billboardGrassEffect.CurrentTechnique = Game.billboardGrassEffect.Techniques["GrassBB"];
        }
Пример #2
0
        public BBGrass(Game1 newGame, TextureTerrain newTerrain, string newTexture)
        {
            Game    = newGame;
            terrain = newTerrain;
            bbtex   = Game.Content.Load <Texture2D>(newTexture);
            SetUpBillboards();
            CopytoBuffers();

            Game.billboardGrassEffect.Parameters["xTexture"].SetValue(bbtex);
            Game.billboardGrassEffect.CurrentTechnique = Game.billboardGrassEffect.Techniques["GrassBB"];
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }