Un outil web pour explorer les shaders GPU
Des programmes qui s'exécutent sur le GPU
et qui souvent sont assez cool
Des animations 3D sophistiquées
Des fonds d'écran calculés
pour des sites web différents
Des fonds d'écran calculés
pour les grandes occasions
Le GPU calcule en parallèle chaque pixel (fragment)
et vos algorithms construisent l'image
ShaderToy ne s'intéresse pas aux vertex shaders
void mainImage(out vec4 fragColor, in vec2 fragCoord)
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = fragCoord/iResolution.xy;
vec3 col = 0.5 + 0.5*cos(iTime+uv.xyx+vec3(0,2,4));
// Output to screen
fragColor = vec4(col,1.0);
}
Il n'y a rien à faire, ShaderToy pré-remplit!
Bidouillons les paramètres (Alt-Enter pour compiler)
Opérations sur 2, 3 ou 4 valeurs simultanément
Couleur .rgba, Position .xyzw (quaternion)
Réarranger les coordonnées, .zyx, .bgr
N'oubliez pas de choisir la texture pour iChannel0
Les textures sont des variables uniformes
On change la coordonnée "uv" (mapping)
Déformons le centre de l'image
Animons la déformation
Calcul de la couleur en fonction des coordonnées
Cercle en fonction de la distance au centre
Les résolutions X et Y ne sont pas égales
La dimension selon Y est plus grande
Pourquoi on obtient des couleurs Microsoft?
Création de transitions douces
Création de transitions douces
Réutiliser des formes
La couleur est calculée par pixel
Répéter une forme ne coûte rien
Répéter une forme ne coûte rien
À votre avis, combien de briques?
Combien de dalles y a-t-il au sol?
On a une fonction de distance
Une autre fonction de distance
Encore une autre fonction de distance
On peut déplacer indépendamment les éléments
Bouger les objets en bougeant l'espace!!!
Lancer de rayons: on déplace uv en 3D
Déplacement du rayon pas à pas
Les textures aussi sont calculées
Visualiser la théorie de la relativité.
Christophe - Fiction - Physique - Maths