![]() |
[images/MetaBall.tga] |
MetaBalls consist of spherical or tubical elements that can operate on each other's shape. You can only create round and fluid, 'mercurial' or 'clay-like' forms that exist procedurally. Use MetaBalls for special effects or as basis for modelling.
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 then divided into a 3D grid, and for each edge in the grid a calculation is made whether - and precisely 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 is a point of attention for future Blender versions. The basis is already there; and it is outstandingly implemented. Unfortunately Blender has little need for modelling systems that are good 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.
The following rules describe the relation between MetaBall Objects:
The "Threshhold" 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.