Nel 1983, Ken Perlin inventò uno speciale tipo di rumore chiamato rumore di Perlin. Questo tipo di rumore ha un'ampia gamma di applicazioni nella computer grafica, in particolare nella generazione di scene e animazioni naturali, dove può aiutare efficacemente a creare effetti fisici realistici. Il rumore di Perlin può essere utilizzato per generare terreni, apportare modifiche pseudo-casuali alle variabili e aggiornare le texture delle immagini. Questo articolo approfondirà il contesto, gli utilizzi e l'importanza del rumore di Perlin.
L'ispirazione per la creazione di Ken Perlin è nata dalla sua frustrazione per la sensazione meccanica che dava la grafica generata al computer (CGI) all'epoca. Nel 1985 pubblicò formalmente alla conferenza SIGGRAPH un articolo intitolato "An Image Synthesizer", in cui descriveva dettagliatamente il rumore di Perlin. Il suo sviluppo è stato in parte ispirato dal suo lavoro sul film di fantascienza animato al computer della Disney del 1982 Tron. In seguito allo sviluppo della sua tecnica, Perlin ricevette l'Oscar nel 1997 per il suo contributo all'arte di creare texture dall'aspetto naturale su superfici generate al computer.
"Dallo sviluppo del rumore di Perlin, gli artisti della computer grafica sono stati in grado di rappresentare in modo più realistico la complessità dei fenomeni naturali."
Il rumore di Perlin è un elemento di texture procedurale utilizzato come rumore di gradiente che aumenta gradualmente il realismo della computer grafica. Sebbene questa caratteristica abbia una natura pseudo-casuale, tutti i dettagli visibili hanno dimensioni coerenti. Questa proprietà lo rende molto controllabile durante il funzionamento: gli artisti possono inserire più copie in scala del rumore di Perlin in espressioni matematiche per creare un'ampia gamma di texture procedurali. Le texture sintetiche generate utilizzando il rumore Perlin vengono spesso utilizzate nella CGI per far sì che elementi visivi generati al computer, come superfici, fuoco, fumo o nuvole, appaiano più naturali.
Il rumore di Perlin viene solitamente implementato in due, tre o quattro dimensioni, ma in realtà può essere definito in qualsiasi dimensione. L'implementazione in genere prevede tre passaggi: definizione di una griglia di vettori di gradiente casuali, calcolo del prodotto scalare dei vettori di gradiente con i relativi offset e interpolazione tra questi valori.
Definire una griglia n-dimensionale in cui ogni intersezione della griglia è associata a un vettore gradiente di lunghezza unitaria casuale n-dimensionale. Questa randomizzazione aiuta a creare un effetto texture naturale.
Per calcolare il valore di qualsiasi punto candidato, troviamo prima la cella della griglia univoca in cui si trova il punto, quindi identifichiamo i 2^n angoli della cella e i loro vettori di gradiente associati, quindi calcoliamo il vettore di offset per ogni angolo e calcoliamo il vettore gradiente per ogni angolo. Il prodotto scalare del vettore gradiente a ogni angolo è calcolato con il vettore offset. L'influenza di ciascun angolo della griglia aumenta con la distanza, il che significa che l'operazione di normalizzazione sul vettore di offset può introdurre cambiamenti significativi e bruschi, quindi è più importante tenere conto della distanza nella fase di interpolazione.
Il passaggio finale consiste nell'interpolare questi prodotti scalari. Ciò viene fatto utilizzando una funzione che ha derivate di primo ordine pari a zero in 2^n nodi della griglia, quindi vicino a ciascun nodo della griglia l'output approssimerà il prodotto scalare del vettore gradiente del nodo e del vettore di polarizzazione.
Complessità"Il rumore di Perlin è caratterizzato dal fatto che passa attraverso 0 in ogni nodo, il che gli conferisce il suo aspetto distintivo."
Per ogni valutazione della funzione rumore, il prodotto scalare della posizione e del vettore gradiente deve essere calcolato in ogni nodo che contiene una cella della griglia. Quindi la complessità del rumore di Perlin è O(2^n) all'aumentare della dimensione e del contesto. Sebbene il rumore di Perlin abbia ancora un suo ruolo nell'informatica, sono emerse nuove alternative come Simple Noise e OpenSimplex Noise che forniscono risultati simili con una migliore efficienza computazionale.
L'invenzione del rumore di Perlin non solo ha cambiato il modo in cui vengono creati gli effetti visivi, ma continua a influenzare la nostra comprensione delle immagini generate al computer. In futuro, in che modo la tecnologia migliorerà ulteriormente la nostra capacità di ricreare fenomeni naturali nel mondo digitale?