Rumore e grana sui pixel

    function setup() {
    createCanvas( 670, 240 );

    for (let px=0;  px<width;  px++) {
        for (let py=0;  py<height;  py++) {
            let grigio;
            if (py < height/2) {
                grigio = random( 255 );  // rumore bianco
            } else {
                let sfumatura = map( px, 0, width, 0, 255 );
                grigio = sfumatura + random( -25, 25 );  // grana
            }
            set( px, py, grigio );
        }
    }
    updatePixels();
}
  

  

Nella metà superiore ogni pixel ha un grigio casuale, indipendente da quello dei vicini: è il rumore bianco, come la neve dei vecchi televisori.


  

Nella metà inferiore map() trasforma la posizione orizzontale, da 0 a width, in un grigio da 0 a 255: è una sfumatura da nero a bianco, a cui ogni pixel aggiunge una piccola variazione casuale. È la grana, che lascia riconoscere la sfumatura.

Provare ad allargare l’intervallo di random( -25, 25 ), fino a far scomparire la sfumatura.

Provare a sostituire random( -25, 25 ) con randomGaussian( 0, 15 ): con la distribuzione normale le variazioni piccole sono le più frequenti.