Remix.run Logo
magicalhippo 11 hours ago

Didn't have much time to comment earlier, so an addendum.

The intro gene was the first time I had seen real-time metaballs. The implementation, and AFAIK all real-time metaballs in the demo scene at the time, relied on the Marching Cubes[1] algorithm, detailed by Paul Bourke here[2].

At the time the algorithm was patented, though up here in the Scandinavia that was not something that would hold back some teens. You can see the characteristic artifacts of the Marching Cubes algorithm in most demos.

In general metaballs is just one example of using isosurfaces for rendering[3]. Other typical applications is in visualizing partial differential equations, for example computational fluid dynamics. Often it's easier to formulate equations which govern the volume rather than the surface, and you use an isosurface technique to extract the surface you're after.

A point echo of Fudge told me was that a metaball doesn't have to have a strictly positive influence, you could have one which has a negative influence. I think this is what's going on with the red metaball scene in the gene intro.

Nice video, was fun to learn the origins of one of my beloved demo effects.

[1]: https://en.wikipedia.org/wiki/Marching_cubes

[2]: https://paulbourke.net/geometry/polygonise/

[3]: https://en.wikipedia.org/wiki/Isosurface

gdubs 5 hours ago | parent [-]

Oh that's interesting because I would have assumed the demoscene stuff would have done some kind of direct signed distance field rendering and skipped the marching cubes part.

And yea I remember the patent being in effect for so many years. The Spore creators got around it by using the "ear clipping" algorithm.

Negative Metaballs are really fun — included them in our app I mentioned at the end of the video. But they date all the way back to Blinn's paper!