Metaballs

From Wikipedia, the free encyclopedia

Two metaballs
Enlarge
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. 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