Creation
Regardez le shader Creation de la demoscene s'animer : une grille repoussée par une onde annulaire, lue comme un champ de distance lumineux.
Creation est l'un des fragment shaders les plus vus sur Shadertoy, et l'un des plus courts : une douzaine de lignes qui transforment une simple grille unité en un tunnel de lumière qui brille et respire. Ce document en est un portage. Le shader travaille sur le carré unité (p, q) des coordonnées de texture. Chaque point est repoussé du centre le long de son propre rayon par le facteur g = (\sin(T + 0.14) + 1)\,|\sin(9d - 2T - 0.28)| / d , où d est la distance au centre et T le temps. Le premier facteur respire entre 0 et 2 ; le second est un sinus redressé avec un anneau tous les \pi/9 \approx 0.35 unités de rayon, et ces anneaux se déplacent vers l'extérieur quand T croît. La poussée a la même longueur en tout point : la division par d ne fait que transformer (x, y) en une direction unitaire le long du rayon.
Après la poussée, le shader mesure la distance de (p, q) au centre de cellule le plus proche de la grille unité, \operatorname{mod}(p, 1) - 0.5 et de même pour q , et prend c = 0.01 divisé par cette distance. L'inverse fait de chaque centre de cellule un point lumineux, et la poussée radiale étire ces points en traînées et en rubans. La luminosité est enfin divisée une fois de plus par d , si bien que le centre brille et que les coins s'éteignent. Dans l'original, les trois canaux de couleur sont le même champ à trois instants séparés de 0.07 , ce qui donne aux bords leurs franges chromatiques ; la carte de chaleur conserve le canal central sur [0, 1] à travers une palette du sombre au cyan. Le temps T avance d'une unité par seconde, comme dans l'original.
Crédit : le shader original est « Creation » de Danilo Guanabara (Silexars), publié sur Shadertoy sous la référence XsXXDn.
JavaScript est requis pour afficher le tracé interactif.