flotor.fr

Bac à sable : sable et eau en temps réel

Comment ça marche ?

L'eau suit le terrain

Le bac est découpé en 65 536 colonnes. Entre deux colonnes voisines, l'eau circule comme dans un tuyau : plus la différence de niveau est grande, plus le débit augmente. C'est le modèle des « tuyaux virtuels », une méthode classique pour simuler les eaux peu profondes. Dès que le sable bouge, l'eau se réorganise.

Le sable s'éboule

Un tas de sable sec ne tient pas au-delà d'environ 32° : au-delà, les grains glissent vers le bas. Le sable mouillé se tient jusqu'à 50°, c'est pour cela qu'on fait les châteaux avec du sable humide. Sous l'eau, il s'affaisse dès 25°.

Roche, argile et lave

Chaque colonne du bac est une pile : roche au fond, puis argile, puis sable. La roche ne bouge pas, l'argile garde la forme qu'on lui donne et résiste à l'eau : de quoi bâtir des barrages. La lave coule comme un liquide épais, refroidit en quelques dizaines de secondes et durcit en roche ; dans l'eau, elle se fige presque aussitôt dans un nuage de vapeur.

Des objets qui flottent

Canard, bateau en papier, feuille, bûche ou ballon : posés sur l'eau, ils dérivent avec le courant, tanguent, s'écartent les uns des autres et s'échouent quand l'eau se retire. Leur mouvement est calculé sur la carte graphique, à partir de la vitesse de l'eau sous chacun d'eux.

L'eau creuse son lit

Une eau rapide arrache du sable et le transporte ; quand elle ralentit, elle le dépose. Posez une source en haut d'une dune : la rivière creuse peu à peu son lit et forme un delta en arrivant dans le lac.

Cassez la vitre

Avec le marteau, cliquez sur une vitre : elle vole en éclats. De ce côté, l'eau se déverse en cascade et forme une flaque sur la table, et le sable s'écoule jusqu'à retrouver sa pente naturelle.

Tout tourne sur la carte graphique

La simulation est écrite en shaders GLSL : des centaines de milliers de calculs par image, en parallèle. Le sable sèche lentement, la pluie tombe du ciel et fait des ronds dans l'eau, et la lumière forme des reflets mouvants au fond. Le curseur « Vitesse de l'eau » fait tourner la simulation de l'eau plus ou moins souvent.