public static float Perlin3D(float x, float y, float z, float smooth, int octaves, float persistence) { float XY = Noise.BrownianMotion(x * smooth, y * smooth, octaves, persistence); float YZ = Noise.BrownianMotion(y * smooth, z * smooth, octaves, persistence); float XZ = Noise.BrownianMotion(x * smooth, z * smooth, octaves, persistence); float YX = Noise.BrownianMotion(y * smooth, x * smooth, octaves, persistence); float ZY = Noise.BrownianMotion(z * smooth, y * smooth, octaves, persistence); float ZX = Noise.BrownianMotion(z * smooth, x * smooth, octaves, persistence); return((XY + YZ + XZ + YX + ZY + ZX) / 6f); }