Azmyth.Procedural.AzmythNoise.GetValue C# (CSharp) Method

GetValue() public method

public GetValue ( double x, double y ) : double
x double
y double
return double
        public override double GetValue(double x, double y)
        {
            int Xint = (int)x;
            int Yint = (int)y;
            double Xfrac = x - Xint;
            double Yfrac = y - Yint;

            //noise values
            double n01 = Noise(Xint-1, Yint-1);
            double n02 = Noise(Xint+1, Yint-1);
            double n03 = Noise(Xint-1, Yint+1);
            double n04 = Noise(Xint+1, Yint+1);
            double n05 = Noise(Xint-1, Yint);
            double n06 = Noise(Xint+1, Yint);
            double n07 = Noise(Xint, Yint-1);
            double n08 = Noise(Xint, Yint+1);
            double n09 = Noise(Xint, Yint);

            double n12 = Noise(Xint+2, Yint-1);
            double n14 = Noise(Xint+2, Yint+1);
            double n16 = Noise(Xint+2, Yint);

            double n23 = Noise(Xint-1, Yint+2);
            double n24 = Noise(Xint+1, Yint+2);
            double n28 = Noise(Xint, Yint+2);

            double n34 = Noise(Xint+2, Yint+2);

            //find the noise values of the four corners
            double x0y0 = 0.0625*(n01+n02+n03+n04) + 0.125*(n05+n06+n07+n08) + 0.25*(n09);
            double x1y0 = 0.0625*(n07+n12+n08+n14) + 0.125*(n09+n16+n02+n04) + 0.25*(n06);
            double x0y1 = 0.0625*(n05+n06+n23+n24) + 0.125*(n03+n04+n09+n28) + 0.25*(n08);
            double x1y1 = 0.0625*(n09+n16+n28+n34) + 0.125*(n08+n14+n06+n24) + 0.25*(n04);

            //interpolate between those values according to the x and y fractions
            double v1 = Interpolate(x0y0, x1y0, Xfrac); //interpolate in x direction (y)
            double v2 = Interpolate(x0y1, x1y1, Xfrac); //interpolate in x direction (y+1)
            double fin = Interpolate(v1, v2, Yfrac);  //interpolate in y direction

            return fin;
        }

Same methods

AzmythNoise::GetValue ( double x, double y, double z ) : double
AzmythNoise::GetValue ( double x, double y, double z, double t ) : double