Beispiel #1
0
        public override Task OnActivateAsync()
        {
            _densityMap   = new float[5, 33, 5];
            _depthMap     = new float[5, 1, 5];
            _mainNoiseMap = new float[5, 33, 5];
            _minLimitMap  = new float[5, 33, 5];
            _maxLimitMap  = new float[5, 33, 5];
            _surfaceMap   = new float[16, 1, 16];

            _seed         = (int)this.GetPrimaryKeyLong();
            _random       = new Random(_seed);
            _depthNoise   = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _mainNoise    = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _maxNoise     = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _minNoise     = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _surfaceNoise = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);

            _biomeWeights = new float[5, 5];
            for (int i = -2; i <= 2; ++i)
            {
                for (int j = -2; j <= 2; ++j)
                {
                    float f = 10.0F / (float)Math.Sqrt((i * i + j * j) + 0.2D);
                    _biomeWeights[i + 2, j + 2] = f;
                }
            }

            _biomesForGeneration = new Biome[16, 16];

            _genlayer = GenLayer.InitAllLayer(_seed);

            return(Task.CompletedTask);
        }
Beispiel #2
0
        public void TestOctavedPerlinNoise3D()
        {
            const int xExtent = 100;
            const int yExtent = 100;

            using (var file = File.OpenWrite(Path.Combine(RootDir, "OctavedPerlinNoise3D.bmp")))
                using (var image = new Image <ImageSharp.PixelFormats.Rgb24>(xExtent, yExtent))
                {
                    var noise      = new OctavedNoise <PerlinNoise>(new PerlinNoise(100), 8, 0.25f);
                    var noiseValue = new float[xExtent, yExtent, 1];
                    noise.Noise(noiseValue, new Vector3(-10, 10, -10), new Vector3(0.1f, 0.1f, 0));
                    for (int x = 0; x < xExtent; x++)
                    {
                        for (int y = 0; y < yExtent; y++)
                        {
                            var color = (byte)(noiseValue[x, y, 0] * 255);
                            image[x, y] = new ImageSharp.PixelFormats.Rgb24(color, color, color);
                        }
                    }

                    image.SaveAsBmp(file);
                }
        }
Beispiel #3
0
 private void Awake()
 {
     noise = new OctavedNoise <PerlinNoise>(new PerlinNoise(seed), 8, 0.5f);
 }