Metaballs 2D |
Les metaballs sont un vieil effet très connu. La version la plus simple est en 2D. Même si elle est moins impressionnante qu'en 3D, cela donne de très jolis résultats.
Principe :
Une metaball génère un potentiel proche d'elle, par exemple un fonction du style 1/d où d est la distance au centre de la metaball.
Il suffit ensuite de sommer les effets de toutes les metaballs pour obtenir une carte des potentiels.A partir de cette carte de potentiels, on fabrique l'image finale. Il suffir de définir un mapping entre l'espace des potentiels et l'espace couleur (cad une palette). C'est là que réside le plus gros du travail, définir une palette qui donnera de jolis résultats.
Pour paramétrer le résultat, on peut donc modifier:
En jouant sur ces paramètres, on peut aboutir à des effets très variés.
Optimisation :
Pour éviter les calculs de distance ( une racine carrée et quelques multiplications), on précalcule une table de la fonction de potentiel, de largeur 256 par exemple. Pour ajouter l'effet d'une metaball à la carte entière, on ne fait que recopier cette table ( ou une partie) sur la carte entière. Pour avoir des metaballs plus petite, on choisit des tailles de 128,64,32... pour n'avoir à faire que des décalages de bit.
fichier téléchargeable : metaballs2D.tar ( 10 kb) ( source+makefile Linux)
Le fichier .tar à télécharger contient le source et un makefile Linux ( nécessite OpenGL et glut )
Author : Adrien
Auclair
adrien.auclair at club-internet.fr
Last update : 16/07/2004