Originally built for Soar's corruption effect, this metaballs implementation functioned well enough as a standalone module that I decided to release it.
This is implemented using Bezier clipping, running in a post-processing material. Most of the logic is handled by a Custom node running HLSL. Blueprint actors are used as an interface to place metaballs- the data pipeline is:
Metaball Actor -> Master Actor -> Niagara -> RenderTarget -> Screenspace Material
Using a Master Actor and a Niagara particle radically improves the speed of writing to the RenderTarget, enabling real-time, interactive metaballs. Bezier clipping finds the surface quickly & efficiently, and tiled binning pre-sorts data to make it easy for rays to check against only relevant metaballs.
Back to Top