Ini adalah perpustakaan sederhana untuk noise perlin 2d & 3d dan noise simpleks dalam javascript. Kebisingan cukup bagus.
Perpustakaannya cukup cepat (10 juta kueri/detik). Tapi itu masih jauh lebih lambat dibandingkan menggunakan shader. Misalnya, jika Anda mencoba memperbarui piksel seluruh layar, hasilnya akan lambat.
Kode ini didasarkan pada implementasi Stefan Gustavson. Lakukan apa pun yang Anda inginkan dengannya, dll.
noise.seed(Matematika.acak());untuk (var x = 0; x < kanvas.lebar; x++) { for (var y = 0; y < canvas.height; y++) {// Semua fungsi noise mengembalikan nilai dalam kisaran -1 hingga 1.// noise.simplex2 dan noise.perlin2 untuk noisevar 2d value = noise.simplex2( x / 100, y / 100);// ... atau noise.simplex3 dan noise.perlin3:var value = noise.simplex3(x / 100, y / 100, waktu);gambar[x][y].r = Math.abs(nilai) * 256; // Atau apalah. Buka demo.html untuk melihatnya digunakan dengan kanvas. }}
Pustaka menampilkan objek bernama noise
dengan properti berikut:
simplex2(x, y) : Fungsi derau Simpleks 2D
simplex3(x, y, z) : Fungsi derau Simpleks 3D
perlin2(x, y) : Fungsi kebisingan Perlin 2D
perlin3(x, y, z) : Fungsi kebisingan Perlin 3D
seed(val) : Menyemai fungsi kebisingan. Hanya 65536 benih berbeda yang didukung. Gunakan float antara 0 dan 1 atau bilangan bulat dari 1 hingga 65536.