Ejemplo n.º 1
0
        public void Math_Interp_SCurve5_Somewhere_Test_2()
        {
            double v = 0.9;

            double expected = 0.99144;

            Assert.AreEqual(expected, Math.Round(NoiseMath.SCurve5(v), 6));
        }
Ejemplo n.º 2
0
        public void Math_Interp_SCurve5_Somewhere_Test_1()
        {
            double v = 0.333;

            double expected = 0.209383;

            Assert.AreEqual(expected, Math.Round(NoiseMath.SCurve5(v), 6));
        }
Ejemplo n.º 3
0
        public void Math_Interp_SCurve5_Middle_Test()
        {
            double v = 0.5;

            double expected = 0.5;

            Assert.AreEqual(expected, NoiseMath.SCurve5(v));
        }
Ejemplo n.º 4
0
        public void Math_Interp_SCurve5_Upper_Test()
        {
            double v = 1;

            double expected = 1;

            Assert.AreEqual(expected, NoiseMath.SCurve5(v));
        }
Ejemplo n.º 5
0
        internal static double GradientCoherentNoise(double x, double y, double z, int seed, NoiseQuality noiseQuality)
        {
            int x0 = (x > 0.0 ? (int)x : (int)x - 1);
            int x1 = x0 + 1;
            int y0 = (y > 0.0 ? (int)y : (int)y - 1);
            int y1 = y0 + 1;
            int z0 = (z > 0.0 ? (int)z : (int)z - 1);
            int z1 = z0 + 1;

            double xs = 0, ys = 0, zs = 0;

            switch (noiseQuality)
            {
            case NoiseQuality.Low:
                xs = (x - x0);
                ys = (y - y0);
                zs = (z - z0);
                break;

            case NoiseQuality.Standard:
                xs = NoiseMath.SCurve3(x - x0);
                ys = NoiseMath.SCurve3(y - y0);
                zs = NoiseMath.SCurve3(z - z0);
                break;

            case NoiseQuality.High:
                xs = NoiseMath.SCurve5(x - x0);
                ys = NoiseMath.SCurve5(y - y0);
                zs = NoiseMath.SCurve5(z - z0);
                break;
            }

            double n0  = GradientNoise(x, y, z, x0, y0, z0, seed);
            double n1  = GradientNoise(x, y, z, x1, y0, z0, seed);
            double ix0 = NoiseMath.LinearInterpolate(n0, n1, xs);

            n0 = GradientNoise(x, y, z, x0, y1, z0, seed);
            n1 = GradientNoise(x, y, z, x1, y1, z0, seed);
            double ix1 = NoiseMath.LinearInterpolate(n0, n1, xs);
            double iy0 = NoiseMath.LinearInterpolate(ix0, ix1, ys);

            n0  = GradientNoise(x, y, z, x0, y0, z1, seed);
            n1  = GradientNoise(x, y, z, x1, y0, z1, seed);
            ix0 = NoiseMath.LinearInterpolate(n0, n1, xs);
            n0  = GradientNoise(x, y, z, x0, y1, z1, seed);
            n1  = GradientNoise(x, y, z, x1, y1, z1, seed);
            ix1 = NoiseMath.LinearInterpolate(n0, n1, xs);
            double iy1 = NoiseMath.LinearInterpolate(ix0, ix1, ys);

            return(NoiseMath.LinearInterpolate(iy0, iy1, zs));
        }
Ejemplo n.º 6
0
 public void SCurve5Test(double a, double expected)
 {
     Assert.Equal(expected, NoiseMath.SCurve5(a), 6);
 }