MetaBalls consist of spherical or tubular elements that can operate on each other's shape (Figure 64). You can only create round and fluid, 'mercurial' or 'clay-like' forms that exist procedurally. Use MetaBalls for special effects or as a basis for modelling.

Figure 64. Two Metaballs

In fact, MetaBalls are nothing more than mathematical formulas that perform logical operations on one another (AND, OR), and that can be added and subtracted. This method is also called CSG, Constructive Solid Geometry. Because of its mathematical nature, CSG can be displayed well, and relatively quickly, with Ray Tracing. This is much too slow for interactive displays. Thus polygonize routines were developed. The complete CSG area is divided into a 3D grid, and for each edge in the grid a calculation is made, and if (and more importantly where) the formula has a turning point, a 'vertex' for the polygonize is created there.

The available quantity of CSG primitives and tools in Blender is limited. This will be developed further in future versions of Blender. The basis is already there; and it is outstandingly implemented. Unfortunately Blender has little need for modelling systems that are optimized for Ray Tracing. However, it is still fun to play with...

A MetaBall is displayed with the transformations of an Object and an exterior determined by the Material. Only one Material can be used here. In addition, MetaBall saves a separate texture area; this normalises the coordinates of the vertices. Normally the texture area is identical to the boundbox of all vertices. The user can force a texture area with the TKEY command (outside EditMode).

MetaBalls are extremely compact in memory and in the file. The requisite faces are only generated upon rendering. This can take a great deal of calculation time and memory.

To create a Metaball object press SPACE and select 'ADD->Metaball'. You can also access the 'add'-menu by pressing SHIFT-AKEY.

In EditMode you can move and scale the balls or rounded tubes as you wish. This is the best way to construct static - not animated - forms. MetaBalls can also influence each other outside EditMode. Now you have much more freedom in which to work; the balls can now rotate or move; they get every transformation of the Parents' Objects. This method requires more calculation time and is thus somewhat slower.

The following rules describe the relation between MetaBall Objects:

To be able to display animated MetaBalls 'stably', it is important to determine what Object forms the basis. If the basis moves and the rest remains still, you will see the polygonized faces move 'through' the balls.

The "Threshold" in EditButtons is an important setting for MetaBalls. You can make the entire system more fluid - less detailed - or harder using this option. The resolution of poygonize is also specified in EditButtons. This is the big memory consumer; however, it is released immediately after polygonize. It works efficiently and faster if you work with multiple, more compact 'families' of balls. Because it is slow, the polygonize is not immediately recalculated for each change. It is always recalculated after a Grab, Rotate or Size command.