private NoiseMap GenerateNoiseMap(int width, int height) { //module::Perlin myModule; var module = new LibNoise.Primitive.SimplexPerlin(); //var module = new LibNoise.Primitive.BevinsGradient(); //var module = new LibNoise.Primitive.ImprovedPerlin(); module.Quality = NoiseQuality.Best; //module.Seed = PrimitiveModule.DefaultSeed; var random = new Random(); module.Seed = random.Next(); //ScaleBias scale = null; FilterModule fModule = new Pipe(); fModule.Primitive3D = (IModule3D)module; fModule.OctaveCount = random.Next(1, 6); // 1; // FilterModule.DEFAULT_OCTAVE_COUNT; //fModule.Frequency = FilterModule.DEFAULT_FREQUENCY; //fModule.Gain = FilterModule.DEFAULT_GAIN; //fModule.Lacunarity = FilterModule.DEFAULT_LACUNARITY; //fModule.Offset = FilterModule.DEFAULT_OFFSET; //fModule.SpectralExponent = FilterModule.DEFAULT_SPECTRAL_EXPONENT; fModule.Frequency = random.Next(1, 5); fModule.Gain = 10; fModule.Lacunarity = 10; fModule.Offset = 10; fModule.SpectralExponent = 1; NoiseMap heightMap = new NoiseMap(); heightMap.SetSize(width, height); float bound = 2f; //NoiseMapBuilderPlane heightMapBuilder = new NoiseMapBuilderPlane(bound, bound * 2, 0.0f, 100.0f, true); bool seemless = random.Next(0, 1) == 1; NoiseMapBuilderPlane heightMapBuilder = new NoiseMapBuilderPlane(bound, bound * 2, bound, bound * 2, seemless); heightMapBuilder.SourceModule = (IModule3D)fModule; heightMapBuilder.NoiseMap = heightMap; heightMapBuilder.SetSize(width, height); heightMapBuilder.Build(); return(heightMap); }