Metaballs

From Wikipedia, the free encyclopedia

Two metaballs
Two metaballs

Metaballs, in computer graphics terms, are organic-looking n-dimensional objects. The technique for rendering metaballs was invented by Jim Blinn in the early 1980s.

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

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

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

A typical function chosen for metaballs is f(x,y,z) = 1 / ((xx0)2 + (yy0)2 + (zz0)2), where (x0,y0,z0) is the center of the metaball. However, due to the divide, it is computationally expensive. For this reason, approximate polynomial functions are typically used.[citation needed]

There are a number of ways to render the metaballs to the screen. In the case of three dimensional metaballs, the two most common are brute force raycasting and the marching cubes algorithm.

2D metaballs was a very common demo effect in the 1990s. The effect is also available as an XScreensaver module.

[edit] Further reading