In computer graphics, metaballs, also known as blobby objects,[1] [2] are organic-looking n-dimensional isosurfaces, characterised by their ability to meld together when in close proximity to create single, contiguous objects.
In solid modelling, polygon meshes are commonly used. In certain instances, however, metaballs are superior. A metaball's "blobby" appearance makes them versatile tools, often used to model organic objects and also to create base meshes for sculpting.[3]
The technique for rendering metaballs was invented by Jim Blinn in the early 1980s to model atom interactions for Carl Sagan's 1980 TV series Cosmos.[4] It is also referred to colloquially as the "jelly effect" in the motion and UX design community,[5] commonly appearing in UI elements such as navigations and buttons. Metaball behavior corresponds to mitosis in cell biology, where chromosomes generate identical copies of themselves through cell division.
Each metaball is defined as a function in n dimensions (e.g., for three dimensions,
f(x,y,z)
determines whether the volume enclosed by the surface defined by the metaballs is filled at
(x,y,z)
A more Informal definition could be, That if you take 2 circles in 2D, and at point P, circle 1's influence(1/distance) is X and circle 2's influence is Y.
If X+Y>threshold. point P is part of Metaball.. And then you calculate it for all Points, obviously there are Graphing techniques to do that. Interactive Metaball with Neat Function
A typical function chosen for metaballs is the inverse-square law, that is, the contribution to the thresholding function falls off in a bell-shaped curve as the distance from the centre of the metaball increases.
For the three-dimensional case,
f(x,y,z)=1/
2 | |
\sqrt{(x-x | |
0) |
+
2 | |
(y-y | |
0) |
+
2} | |
(z-z | |
0) |
(x0,y0,z0)
Various other falloff functions have historically been used for reasons of computational efficiency. Desirable properties of the function include:
More complicated models use a Gaussian potential constrained to a finite radius or a mixture of polynomials to achieve smoothness. The Soft Object model by the Wyvill brothers provides higher degree of smoothness.
A simple generalization of metaballs is to apply the falloff curve to distance-from-lines or distance-from-surfaces.
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 were a very common demo effect in the 1990s. The effect is also available as an XScreensaver module.