示例#1
0
        public Terrain CreateTerrain()
        {
            var terrain = new Terrain()
            {
                AmbientColor = new Vector3(0.1f, 0.1f, 0.1f),
                DiffuseColor = Color.White.ToVector3(),
                SpecularColor = Color.White.ToVector3(),
                Shininess = 40,
                Texture = PrimaryTexture,
                SecondaryTexture = SecondaryTexture,
                MarkTexture = MarkTexture
            };

            GenerateVertices(terrain, GeneratePositions());

            for(int i = 0; i < SquareCount; ++i)
                for (int j = 0; j < SquareCount; ++j)
                {
                    terrain.AddIndex((i + 1) * (SquareCount + 1) + j);
                    terrain.AddIndex(i * (SquareCount + 1) + j + 1);
                    terrain.AddIndex(i*(SquareCount + 1) + j);

                    terrain.AddIndex((i + 1)*(SquareCount + 1) + j);
                    terrain.AddIndex((i + 1)*(SquareCount + 1) + j + 1);
                    terrain.AddIndex(i*(SquareCount + 1) + j + 1);
                }

            terrain.InitializePrimitive(GraphicsDevice);
            return terrain;
        }