コード例 #1
0
ファイル: NoiseLayer.cs プロジェクト: simonwittber/noisemaps
        protected float BrownianMotionNoise(float x, float y, float z)
        {
            var N = 0f;
            var F = frequency;
            var A = 1f;

            for (var i = 0; i < octaves; i++)
            {
                var n = ImprovedNoise.Sample(x * F, y * F, z * F, seed: seed + i, repeat: repeat);
                N += (n * A);
                A *= persistence;
                F *= lacunarity;
            }
            return(N);
        }
コード例 #2
0
ファイル: NoiseLayer.cs プロジェクト: simonwittber/noisemaps
        protected float MultiFractalNoise(float x, float y, float z)
        {
            var N = 1f;
            var F = frequency;
            var A = 1f;

            for (var i = 0; i < octaves; i++)
            {
                var n = -1 + ImprovedNoise.Sample(x * F, y * F, z * F, seed: seed + i, repeat: repeat);
                N *= (n * A);
                A *= persistence;
                F *= lacunarity;
            }
            return(N);
        }
コード例 #3
0
ファイル: NoiseLayer.cs プロジェクト: simonwittber/noisemaps
        protected float BillowNoise(float x, float y, float z)
        {
            var N = 0f;
            var F = frequency;
            var A = 1f;

            for (var i = 0; i < octaves; i++)
            {
                var s = ImprovedNoise.Sample(x * F, y * F, z * F, seed: seed + i, repeat: repeat);
                s *= A;
                s  = Mathf.Abs(s);
                N += (s * lacunarity) + bias;
                A *= persistence;
                F *= lacunarity;
            }
            //at this point N is between 0 and 1, so we make it -1, 1
            N = N * 2 - 1;
            return(N);
        }
コード例 #4
0
ファイル: NoiseLayer.cs プロジェクト: simonwittber/noisemaps
        protected float RidgeNoise(float x, float y, float z)
        {
            var F = frequency;
            var A = 1f;
            var N = 1f - Mathf.Abs(ImprovedNoise.Sample(x * F, y * F, z * F, seed: seed, repeat: repeat));

            N *= N;
            var s = N;

            for (var i = 1; i < octaves; i++)
            {
                var weight = Mathf.Clamp01(s * 2);
                F *= lacunarity;
                A *= persistence;
                s  = 1f - Mathf.Abs(ImprovedNoise.Sample(x * F, y * F, z * F, seed: seed + i, repeat: repeat));
                s *= s;
                s *= weight;
                N += s * A;
            }
            //at this point N is between 0 and 1, so we make it -1, 1
            N = N * 2 - 1;
            return(N);
        }