bulles de savon

(english version)

L'été est chaud cette année...

Après avoir lu un bouquin sur les fractales, l'idée (pas vraiment liée, mais l'esprit fonctionne de cette façon parfois...) m'est venue de raytracer un tas de bulles de savon, avec des intersections réalistes.

La simplification principale a été de supposer que la pression est la même dans toutes les bulles, et que les interfaces internes sont donc planes. Avec cette hypothèse, l'interface entre deux bulles ne peut être que le disque délimité par le cercle, intersection des deux sphères.

J'ai tout d'abord pensé décrire les surfaces (sphères tronquées, disques, disques tronqués), mais avec le langage de description de scènes de POV-Ray, décrire le volume des bulles c'est révélé plus simple, et potentiellement plus prometteur (remplissage individuel des bulles,...) J'ai eu peur que dupliquer les interfaces internes influe sur le rendu, mais je n'ai rien remarqué.

J'ai écris un script Perl pour calculer la géométrie des bulles (j'ai depuis appris que le langage de description de scènes de POV-Ray permet l'utilisation de boucles, etc. Il se peut que le même résultat puisse être obtenu avec POV-Ray seul; mais je suis tellement habitué à Perl...) Une bonne portion du code est juste l'implémentation d'opérateurs courants sur les vecteurs.

Voir un exemple de géométrie CSG de bulles de savon générée.

Le fichier principal de description de scène est assez standard, et utilise l'effet irid pour rendre les bulles de savon.

Amélioration possible : le placement aléatoire des bulles donne un résultat peu naturel. Il faudrait procéder à une simulation (gravité, répulsion entre bulles,...) avant de générer la scène...

Finalement quelques images et animations obtenues :

petchema at concept-micro dot com