Это простая библиотека для 2D и 3D шума Перлина и симплексного шума в JavaScript. Шум красивый.
Библиотека довольно быстрая (10М запросов/сек). Но это все равно намного медленнее, чем использование шейдера. Например, если вы попытаетесь обновить количество пикселей всего экрана, это будет медленно.
Код основан на реализации Стефана Густавсона. Делайте с ним что хотите и т.д.
Noise.seed(Math.random());for (var x = 0; x <canvas.width; x++) { for (var y = 0; y < Canvas.height; y++) {// Все функции шума возвращают значения в диапазоне от -1 до 1.// Noise.simplex2 и Noise.perlin2 для 2d Noisevar Value = Noise.Simple2( x / 100, y / 100);// ... или Noise.simplex3 и Noise.perlin3:var значение = Noise.simplex3(x / 100, y / 100, время);image[x][y].r = Math.abs(значение) * 256; // Или что-то еще. Откройте demo.html, чтобы увидеть, как он используется с холстом. }}
Библиотека предоставляет объект под названием noise
со следующими свойствами:
simplex2(x, y) : 2D-функция симплексного шума
simplex3(x, y, z) : функция 3D симплексного шума
perlin2(x, y) : 2D-функция шума Перлина
perlin3(x, y, z) : функция 3D-шума Перлина
seed(val) : начальное значение функций шума. Поддерживается всего 65536 различных семян. Используйте число с плавающей запятой от 0 до 1 или целое число от 1 до 65536.