Metaballs

From Free net encyclopedia

Image:Metaballs.gif Metaballs is the name of a computer graphics technique for rendering organic-looking n-dimensional objects and was invented by Jim Blinn in the early 1980s.

Each metaball is defined as a function in n-dimensions (ie. for three dimensions, <math>f(x,y,z)</math>; three-dimensional metaballs tend to be most common). A thresholding value is also chosen, to define a solid volume. Then,

<math>\sum_{i=0}^n \mathit{metaball}_i(x,y,z) \leq \mathit{threshold}</math>

represents whether the volume enclosed by the surface defined by <math>n</math> metaballs is filled at <math>(x,y,z)</math> or not.

A typical function chosen for metaballs is <math>f(x,y,z) = 1 / ((x-x_0)^2 + (y-y_0)^2 + (z-z_0)^2)</math>, where <math>(x_0, y_0, z_0)</math> is the center of the metaball. However, due to the divide, it is computationally expensive. For this reason, approximate polynomial functions are typically used (examples?).

There are a number of ways to render the metaballs to the screen. The two most common are brute force raycasting and the marching cubes algorithm.

Further reading

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

es:Metaball fr:Metaballs