Metaball

Metaball

Metaballs

Deux metaballs

Les metaballs sont une technique utilisée en infographie pour créer des formes organiques ou représenter des fluides. En français, on trouve également la dénomination « objets mous ». Les metaballs sont une variante des soft objects mais le nom s'est imposé dans la littérature et dans les logiciels. Ce concept a été inventé par Jim Blinn au début des années 80.

Chaque balle est définie comme un fonction mathématique à N dimensions. Les plus courantes sont en trois dimensions, on définit alors la fonction f(x,y,z)~. Cette fonction retourne un scalaire et permet de définir un champ scalaire. Une valeur de seuil est ensuite choisie pour délimiter la surface. Il est possible de mélanger plusieurs balles qui vont mutuellement s'influencer et contribuer aux valeurs du champ scalaire.

\sum_{i=0}^n \mathit{metaball}_i(x,y,z) \leq \mathit{seuil}

indique si le point (x,y,z)~ se trouve à l'intérieur du volume confiné par la surface.

Sommaire

Exemples de fonctions

Une fonction typique pour des metaballs est f(x,y,z) = \frac{1}{(x-x_0)^2 + (y-y_0)^2 + (z-z_0)^2}~, où (x_0, y_0, z_0)~ est le centre de la balle. La division rend cependant cette fonction assez lente à calculer. On peut utiliser à la place des approximations polynômiales.

Voilà quelques propriétés que peut avoir cette fonction :

  • si l'on cherche à faire des sphères, il faut que la fonction ne dépende que de la distance :  d = \sqrt{(x-x_0)^2 + (y-y_0)^2 + (z-z_0)^2}~.
  • si l'on cherche à créer une surface continue, il faut que la fonction soit continue.
  • si l'on cherche à créer une surface lisse (sans rupture de pente), il faut que la fonction soit à dérivée continue.
  • si l'on cherche à créer une surface avec des reflets continus, il faut que la fonction soit à dérivée seconde continue.

Pour pouvoir accélérer les calculs, il peut être intéressant d'avoir une fonction nulle au-delà d'une certaine distance, pour que les metaballs n'influent l'une sur l'autre qu'à une distance raisonnable. Dans ce cas pour avoir de jolies metaballs (continues, lisses et sans rupture des reflets) avec des polynômes, la fonction la plus simple est : f(x,y,z) = g(d) = (d_{max}^2 - d^2)^3~ si d < d_{max}, 0~ sinon.

Plusieurs méthodes existent pour afficher des metaballs. Elles dépendent du résultat désiré :

  • force brute discrète : on évalue un grand nombre de points (x,y,z) et on affiche le résultat en fonction de l'appartenance au volume
  • lancer de rayon : on projete un rayon dans la scène et on calcule les intersections avec la surface de l'objet
  • marching cubes : on divise la scène en une multitude de cubes. Chaque cube et ses valeurs du produit scalaire aux sommets sont analysés et des triangles sont générés en fonction de 256 configurations possibles.

Variantes

Une des nombreuses et des plus rapides méthode de calcul et d'affichage de metaballs 2D.

Les metaballs existent en deux dimensions, utilisant alors une superposition de sprites modifiés (addition et posterisation par exemple) ou l'algorithme des marching squares pour l'affichage de la surface pleine. Ces metaballs sont bien moins gourmandes à calculer que la version en trois dimensions, et permettent un plus grand nombre d'améliorations, pour un résultat bien évidemment moins réaliste. Un effet de bump peut être ajouté pour donner une impression de 3D.

Les metaballs étant calculées via la production d'un champ scalaire, des variantes sont apparues comme les metatores, metaplans, ainsi qu'une variété d'objets plus ou moins faciles à définir mathématiquement de manière implicite.

Les metaballs ressemblent à des sphères qui se mélangent doucement, mais en changeant la norme avec laquelle on travaille on peut obtenir des ellipsoïdes, des cubes, des parallélépipèdes rectangles ou des cylindres. Pour cela on peut utiliser les mêmes fonctions de la distance d~, mais en prenant non pas la distance euclidienne mais la distance associée à la norme 1 ou à d'autres normes qui vont alors déformer l'espace. Il est même tout à fait possible de mélanger dans un même champs des metaballs et des metacubes ou autre metavolume.

 \frac{1}{(x-1)^2 + (y-1)^2 + (z-1)^2} + \frac{1}{\max(|x|, |y|, |z|)^2} \leq seuil définit une metaball proche d'un metacube.

Références

  • Blinn, James F.  "A Generalization of Algebraic Surface Drawing." ACM Transactions on Graphics 1(3), July 1982, pp. 235–256.

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Metaballs ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Metaball de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Metaball — es el nombre de una técnica de gráficos realizada por ordenador para simular interacción orgánica entre diferentes objetos n dimensionales (como gotas de mercurio mezclándose por su superficie) y fue inventado por Jim Blinn a principios de los… …   Wikipedia Español

  • Metaball — 1 = zwei positive Metaballs verschmelzen ineinander, 2 = ein negativer Metaball drückt einen positiven ein Ein Metaball ist das Ergebnis eines Algorithmus, der eine dehnbare Oberfläche erzeugt, die die Form einer Kugel (bei genau einem) oder eine …   Deutsch Wikipedia

  • Metaball — 1: Взаимодействие двух положительных метасфер. 2: Взаимодействие положительной и отрицательной метасферы создает вмятину на положительной метасфере. Metaball (рус. Метасфера, также встречается «метаболл») n мерный объект в компьютерной графике,… …   Википедия

  • metaball — noun An n dimensional object with an organic appearance, a popular visual effect in the demoscene …   Wiktionary

  • Metaballs — 1: The influence of 2 positive metaballs on each other. 2: The influence of a negative metaball on a positive metaball by creating an indentation in the positive metaball s surface. Metaballs are, in computer graphics, organic looking n… …   Wikipedia

  • Blender3D — Blender Screenshot von Blender v2.46 Basisdaten …   Deutsch Wikipedia

  • Blender3d — Blender Screenshot von Blender v2.46 Basisdaten …   Deutsch Wikipedia

  • Blender 3D — Blender Screenshot von Blender v2.46 Basisdaten …   Deutsch Wikipedia

  • Metaballs — Deux metaballs Les metaballs sont une technique utilisée en infographie pour créer des formes organiques ou représenter des fluides. En français, on trouve également la dénomination « objets mous ». Les metaballs sont une variante des… …   Wikipédia en Français

  • Objet mou — Metaballs Deux metaballs Les metaballs sont une technique utilisée en infographie pour créer des formes organiques ou représenter des fluides. En français, on trouve également la dénomination « objets mous ». Les metaballs sont une… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”