bunex-industries

Système de particules WebGL

Si on veut animer beaucoup de particules (1 million ?), il faut déléguer le plus de travail possible à la carte graphique (GPU). Idéalement, il faudrait que tous les calculs de trajectoire soient exécutés via un vertex-shader en GLSL.

La simulation ci-dessous, avec 800000 particules, met en oeuvre une technique prévue dans webGL prévue pour parvenir à une telle chose.




Les particules sont représentées par une liste de points (vertexArray), sous la forme de buffers de positions et vitesses, qu'on initialise ou pas avec des valeurs initiales. Ce remplissage peut-être fait en javascript (CPU) une fois.

On peut imaginer plusieurs situations :

Animation "triviale"

Simulation rendue avec le GPU mais positions et vitesses re-calculée par le CPU

Simulation "complexe" calculée et rendue par le GPU via les "transform feedback"

Simulation "complexe" calculée et rendue par le GPU via un FB ping-pong