Пример #1
0
        public static float valuenoise(vec2 v)
        {
            ivec2 i = (ivec2)v;
            vec2  f = fract(v);

            float a = rand(i),
                  b = rand(i + ivec2.unitx),
                  c = rand(i + ivec2.unity),
                  d = rand(i + ivec2.one);

            vec2 u = f * f * (3f - f * 2f);

            return(lerp(a, b, u.x) +
                   (c - a) * u.y * (1f - u.x) +
                   (d - b) * u.x * u.y);
        }
Пример #2
0
 public static float rand(ivec2 seed) => rand(seed.x, seed.y);