Utilizzo degli shader per creare effetti speciali realistici nel web design

Pubblicato: 2020-03-11

WebGL è diventato oggetto di sperimentazione e di testare i limiti di ciò che è possibile sul web. Quasi ogni giorno ci imbattiamo in soluzioni grandiose alimentate da esso. A riprova, abbiamo già esaminato una serie di progetti reali.

Oggi esploreremo alcuni concetti che mostrano i vantaggi dell'utilizzo degli shader. Ci concentreremo su GLSL.

GLSL sta per Graphics Library Shader Language. È parte integrante di WebGL e responsabile della maggior parte delle soluzioni strabilianti che vediamo in natura. All'altezza del suo nome, fornisce agli sviluppatori strumenti per manipolare la grafica in modo intuitivo. Nelle mani giuste, è in grado di dare vita a quasi tutte le idee.

Codepen pullula già di affascinanti progetti creati con l'aiuto degli shader. Tuttavia, quelli che mostrano effetti realistici sono i più impressionanti e stimolanti. E lo dimostreremo nella collezione di oggi. Immergiamoci.

Waterdroplet WebGL Shader di Stefan Weck

Stefan Werk apre la nostra carrellata con il suo capolavoro, dimostrando a tutti che le tecnologie di fascia alta sono una vera magia. È riuscito a ricreare la pioggia che cadeva su una finestra (o nel nostro caso, uno schermo). Il comportamento e la realizzazione delle gocce di pioggia sono così reali che vorresti toccarle. Qui, JavaScript sta dietro alla simulazione della pioggia mentre lo shader WebGL si assume la responsabilità dell'effetto appiccicoso e della rifrazione.

Tre js water shader di Jonathan Blair / ShaderToy Compilation di David Hartley

Forse i prossimi due progetti sono tra gli esempi più impressionanti di utilizzo degli shader nella nostra raccolta. Sebbene ognuno costringa il tuo computer a funzionare a piena capacità per far fronte a tutto ciò che accade dietro le quinte, tuttavia ne vale la pena. Ogni concetto, con tutte quelle increspature, onde piccole e grandi, insieme ai colori che cambiano, sembra incredibilmente realistico e molto stimolante.

Mentre Jonathan Blair ha ricreato solo la superficie dell'acqua, David Hartley ha reso le cose un po' interessanti dando a quest'ultima una forma sferica, imitando così abilmente la Terra. Entrambi i progetti sono strabilianti.

Esempio di Shader Pixijs.v3 di Omar Shehata

Realizzato da Pixi.js, questo affascinante concetto di Omar Shehata ti sorprenderà con la sua simulazione altamente dettagliata di un effetto foschia. Condite con una bella colorazione violacea e uno sfondo scuro, queste nuvole di fumo sembrano incredibilmente autentiche. Il comportamento è ben ponderato. Il concetto è semplicemente affascinante.

Nevicata WebGL Shader di Boris Šehovac

Questo concetto è all'altezza del suo nome. È altamente realistico. Boris Sehovac ha utilizzato fiocchi di neve di diverse dimensioni, diversi livelli di sfocatura e diverse velocità per ricreare la profondità. Inoltre, ha anche cercato di simulare il vento costringendo la composizione a cambiare direzione da sinistra a destra e viceversa. Di conseguenza, possiamo assistere a una specie di piccola tempesta di neve. Dietro questa bellezza c'è uno shader WebGL nativo.

Concetto di Anand Davaasuren

Se l'esempio precedente ti ha lasciato una buona impressione, allora il concetto di Anand Davaasuren piacerà senza dubbio ai tuoi occhi. La soluzione si basa sulla stessa idea. Al centro c'è l'effetto neve che cade: anche se con un'eccezione. Questo esempio usa i cuori invece dei fiocchi di neve. Di conseguenza, il concetto ha un'atmosfera incantevole a cui è difficile resistere. Forse non è brutalmente realistico, ma comunque l'effetto di caduta e il comportamento dei cuori sono incredibilmente raffinati.

Clouds Shader di David Hartley

Questo è un altro capolavoro creato da David Hartley. Questa volta l'artista mostra la sua interpretazione delle nuvole e il loro comportamento fluttuante. Ancora una volta, Pixi.js sta dietro a questo grandioso progetto. Qui, la telecamera attraversa le nuvole, facendoti sentire tutta la bellezza dell'idea. Ma non era abbastanza per David. Ci ha anche fornito l'opportunità di esplorare la scena spostando il cursore. Semplicemente incredibile.

Fire shader di 14islands

Da una gelida tempesta di neve e fredde soffici nuvole alla roba calda, ecco un tentativo riuscito di simulare il fuoco. Il team dietro 14islands usa un mucchio di particelle e shader personalizzati per dare vita a questa idea. Di conseguenza, possiamo assistere a un piccolo falò con fumo che emana calore su tutti i fronti.

GLSL: Chrome di Liam Egan

Chrome di Liam Egan presenta un liquido ad alta densità. Il progetto ricorda leggermente una scena dell'epico Terminator 2, quando il malvagio T-1000 mostrava la sua composizione di metallo liquido. Il concetto sembra artificiale, senza dubbio. Eppure il comportamento e la superficie lucida sembrano incredibilmente realistici. Inoltre, puoi giocare spostando il mouse su e giù per modificare il parametro di smoothing.

Effetto Ripple di Martin Laxenaire

Questo progetto di Martin Laxenaire è un perfetto esempio di shader messi in pratica. Qui, l'autore è riuscito a ottenere un vero e proprio effetto increspatura che fa muovere l'immagine come una tenda al passaggio del mouse. Curtains.js alimenta questo concetto. L'unico inconveniente è che potrebbe essere troppo presto per fornire ogni singola immagine su un sito Web con questo effetto poiché è ancora troppo pesante per essere "digerita" da un computer di fascia bassa.

Lucciole glitch di Fabien Motte

Il progetto di Fabien Motte presenta anche una soluzione pratica. Tuttavia, non intendiamo queste lucciole luminose che si muovono caoticamente attorno all'asse verticale. Stiamo parlando di un effetto glitch che occasionalmente colpisce lo schermo. È semplicemente incredibile. E poiché è popolare in questi giorni, questo concetto può fungere da base perfetta per i tuoi esperimenti.

Getta un po' d'ombra

Gli shader sono strumenti potenti. Anche se in questo articolo ci siamo concentrati su soluzioni realistiche, ci sono un sacco di altri concetti strabilianti che sembrano più artificiali. Puoi creare scene e composizioni assolutamente diverse: è qui che la tua immaginazione può scatenarsi.

Tuttavia, da un grande potere derivano grandi responsabilità. Ci sono un paio di problemi che devi prendere in considerazione prima di saltare in tutta questa faccenda dello shader.

Innanzitutto, c'è un problema con la compatibilità del browser. Non tutti possono godere della sua bellezza. E in secondo luogo, non tutti i computer possono gestirlo senza intoppi. Ciò significa che gli shader non sono strumenti universali, almeno non ancora.