This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
In computer graphics, metaballs 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.
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. It is also referred to colloquially as the "jelly effect" in the motion and UX design community, 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, ; three-dimensional metaballs tend to be most common, with two-dimensional implementations popular as well). A thresholding value is also chosen, to define a solid volume. Then,
represents whether the volume enclosed by the surface defined by metaballs is filled at or not.
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,
where is the center of the metaball. However, due to the division, it is computationally expensive. For this reason, approximate polynomial functions are typically used.
When seeking a more efficient falloff function, several qualities are desired:
- Finite support. A function with finite support goes to zero at a maximum radius. When evaluating the metaball field, any points beyond their maximum radius from the sample point can be ignored. Nearest neighbor search can ensure only adjacent metaballs need to be evaluated regardless of the total number in the field.
- Smoothness. Because the isosurface is the result of adding the fields together, its smoothness is dependent on the smoothness of the falloff curves.
The simplest falloff curve that satisfies these criteria is where is the distance to the point. This formulation avoids expensive square root calls.
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 and still avoids square roots.
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.
- ^ "Art of Joe Daniels: Digital Sculpting Tutorial". 8 October 2007.
- ^ "CG Notes: Metaballs Intro".
- ^ "The "jelly effect" has recently been very popular and used in lots of animations. … | After effect tutorial, Adobe after effects tutorials, Motion graphics tutorial". Pinterest. Retrieved 2020-08-11.
- Blinn, J. F. (July 1982). "A Generalization of Algebraic Surface Drawing". ACM Transactions on Graphics. 1 (3): 235–256. doi:10.1145/357306.357310. S2CID 24838292.
- Implicit Surfaces article by Paul Bourke
- Meta Objects article from Blender wiki
- Metaballs article from SIGGRAPH website
- "Exploring Metaballs and Isosurfaces in 2D", 3 September 2008, Stephen Whitmore, gamedev.net