Esta es una biblioteca simple para ruido perlin 2d y 3d y ruido simplex en javascript. El ruido es bonito.
La biblioteca es bastante rápida (10 millones de consultas/seg). Pero sigue siendo mucho más lento que usar un sombreador. Por ejemplo, si intenta actualizar los píxeles de una pantalla completa, será lento.
El código se basa en la implementación de Stefan Gustavson. Haz lo que quieras con él, etc.
ruido.seed(Math.random());for (var x = 0; x < canvas.width; x++) { for (var y = 0; y < canvas.height; y++) {// Todas las funciones de ruido devuelven valores en el rango de -1 a 1.// noise.simplex2 y noise.perlin2 para 2d noisevar value = noise.simplex2( x / 100, y / 100);// ... o noise.simplex3 y noise.perlin3:var valor = noise.simplex3(x / 100, y / 100, hora);imagen[x][y].r = Math.abs(valor) * 256; // O lo que sea. Abra demo.html para verlo usado con lienzo. }}
La biblioteca expone un objeto llamado noise
con las siguientes propiedades:
simplex2(x, y) : función de ruido simplex 2D
simplex3(x, y, z) : función de ruido simplex 3D
perlin2(x, y) : función de ruido Perlin 2D
perlin3(x, y, z) : función de ruido 3D Perlin
semilla(val) : siembra las funciones de ruido. Sólo se admiten 65536 semillas diferentes. Utilice un valor flotante entre 0 y 1 o un número entero entre 1 y 65536.