Cette page présente quelques exemples et remarques sur le simulateur de fluides de Blender. Elle correspond à ma façon de voir les choses (et je ne suis pas allé voir dans le code ni dans les articles comment çà marche vraiment), donc elle est peut être fausse, mais elle peut toujours donner un point de départ ou dépanner dans certains cas.
Les remarques et exemples ci-dessous supposent que vous savez déjà vous servir de Blender et que vous avez déjà les bases de simulation de fluides (en particulier, vous connaissez déjà les étapes à suivre pour effectuer une simulation). Dans le cas contraire, vous devriez d'abord aller voir :
Ce paramètre se trouve dans les options de fluides attachées au domaine.
La résolution est le paramètre le plus important et celui qui est à la base de la majorité des problèmes que l'on peut rencontrer. Elle détermine la taille de l'élément de simulation qui est à la base des capacités du simulateur. En effet :
La taille de l'élément de simulation est obtenue en divisant la taille du domaine par la résolution. Ainsi si le domaine est un cube de 2 unités [1] de large, l'élément de simulation sera un cube de 0,02 unités de large.
La documentation officielle permet facilement d'obtenir des résultats en plaçant une grande quantité de liquide en haut du domaine et en regardant comment il s'écoule. Il est très légèrement plus délicat de faire couler du liquide à partir de l'extérieur du domaine (comme si on avait un robinet ou un jet d'eau). Voici un exemple :
XViD [1,7 Mo] /
.blend [602 Ko]
En apparence, la solution est très simple : il suffit de
sélectionner l'option Inflow
dans le panneau
Fluid Simulation
de l'objet et de régler la vitesse
initiale dans le même panneau. Cependant, très souvent le fluide
n'apparaît pas.
Le problème vient du rapport de tailles entre la source de
fluide (l'objet Inflow
) et l'élément de
simulation : si la source de fluide est plus petite que
l'élément de simulation, il sera impossible de la représenter et le
jet ne sera pas visible. Il est donc particulièrement important
de veiller à ce que la source de fluide soit plus grosse que
l'élément de simulation [2].
Il n'est pas possible de régler directement le débit d'arrivée
du fluide (en m³/s). Cependant, le débit est lié à la vitesse et à
la section par la relation : Q=S·v. La section est difficile à
régler précisément, mais la vitesse est directement accessible dans
le panneau Fluid Simulation
et permet d'ajuster le
débit.
Dans l'exemple précédent, le récipient se remplit au fur et à mesure que le temps passe. L'exemple ci-dessous évite ce phénomène et permet de réaliser une fontaine dont le bassin ne déborde pas :
XViD [1,0 Mo] /
.blend [607 Ko]
L'astuce consiste à placer dans le bassin un objet de type
Outflow
. Cet objet évacuera tout le fluide qui
pénétrera à l'intérieur. Là encore il faut veiller à ce que l'objet
soit plus grand que l'élément de simulation, faute de quoi il risque
d'être ignoré.
Ce n'est pas très difficile d'ajouter des obstacles à la
simulation : il suffit d'activer l'option Obstacle
du panneau Fluid Simulation
. Cependant, il y a
deux points très importants auxquels il faut faire attention :
Ctrl-N
sur le maillage avant de lancer la
simulation. Un grand merci à Jean Montambeault qui m'a indiqué la
solution.
Voilà donc deux exemples de fluides avec obstacles :
XViD [560 Ko] /
.blend.gz [437 Ko]
Très souvent, les simulations de fluide ont un aspect un peu visqueux. Il est très difficile d'obtenir un liquide vraiment fluide. Voici quelques directions à creuser pour améliorer le réalisme du résultat.
Le principal problème vient de la résolution : celle-ci doit être suffisante pour représenter le plus petit détail du liquide. Plus ce dernier est fluide, plus il est susceptible d'avoir des détails fins (gouttes, vaguelettes, etc) et donc plus il exige une résolution importante.
Le deuxième point sur lequel on peut jouer concerne les grandeurs physiques : Blender permet de régler certaines valeurs dans les options avancées du domaine :
Il est cependant important de se rappeler que l'unité de
longueur de Blender est purement arbitraire et sans correspondance
physique. Blender permet d'établir cette correspondance avec
l'option Realworld-size
qui permet de préciser la
taille du domaine en mètres.
Certains effets des fluides (en particulier les tourbillons lorsqu'on vide une baignoire) sont dûs à des phénomènes externes qui ne sont pas pris en compte (comme la rotation de la terre). Ces effets ne seront donc pas simulés (voir l'exemple de l'évier qui se vide ci-dessus et où il n'y a pas de tourbillon).
Pour obtenir un réalisme maximum, les étapes à observer sont les suivantes :
Realworld-size
(10 cm pour un verre d'eau,
1 km pour un lac) ;
Start
time
et End time
pour représenter la même
durée. Par exemple avec les valeurs par défauts : 250 images
à 25 images par secondes donnent 10 s. Il faut donc que la
différence entre le Start time
et le End
time
soit 10 ;
Cette méthode est la seule méthode systématique qui garantit un résultat réaliste. Elle devrait donner entière satisfaction pour simuler un fluide visqueux. En revanche pour un liquide plus fluide, il faudra faire des compromis. À partir de ce moment, le paramètre important est la résolution qui doit absolument être aussi grande que possible. Les autres paramètres ne devraient pas avoir d'influence notable sur le réalisme, mais on pourra éventuellement essayer de diminuer un peu la viscosité du fluide pour compenser le manque de finesse de la simulation.
[1] Je rappelle que l'unité de longueur de Blender est une valeur complètement abstraite sans correspondance avec le monde réel. Voir à ce sujet le paragraphe sur les grandeurs physiques.
[2] En fonction de sa position, une source de fluide plus petite que l'élément de simulation peut être visible quand même. Cependant dans ce cas elle sera vue par le simulateur avec une taille égale à celle de l'élément de simulation. Afin d'obtenir un comportement aussi prévisible que possible, il vaut donc mieux toujours veiller à ce que la source aie une taille suffisamment grande.
[3] Mais rien n'interdit de faire la simulation avec un obstacle épais et de le remplacer par une version plus fine pour le rendu final...
[4] La page sur la viscosité de Wikipedia contient quelques valeurs de viscosités de référence.
Compteur de visites :