Un million de particules
GPGPU · curl noise · 1 048 576 points, zéro attribut — OGL, WebGL2
WebGL2 indisponible sur ce navigateur — voici une capture de la démo.
— Note technique
Ce qui tourne, réellement
L’état du million de particules ne touche jamais
JavaScript : positions et vélocités vivent dans des
textures flottantes (RGBA32F, un texel par particule) mises à
jour par des fragment shaders, en ping-pong entre deux paires
de framebuffers — du calcul GPGPU sur une architecture
graphique. Le champ de turbulence est un curl
noise : le rotationnel d’un potentiel fait de trois
simplex 3D, calculé analytiquement à partir de leurs dérivées
— à divergence nulle, il fait tourner les trajectoires au lieu
de les faire converger. Le rappel vers le logo est un ressort
amorti intégré en Euler symplectique, stable là où l’Euler
explicite exploserait. Le rendu tire le million de points en
un seul appel, sans aucun buffer de sommets :
gl_VertexID suffit à retrouver le texel de
chacun. Et la cible est interchangeable — déposez un logo
sur le cadre, ou passez ?logo= dans l’URL.
Lire le code source, curl noise et rééchantillonnage compris
Votre logo, dans cette démo.
La cible est interchangeable — c’est pensé pour ça. Imaginez la même chose en ouverture de votre site.