Creating Blobs using SDF on Meta Spark

I’m trying to create a blob that follows the user head movements, using SDFs.
How can I achieve a metaball look using SDFs?

Thanks,

1 Like

3D SDFs are a little expensive for spark, but you can fake it with some 3D spheres and render passes. The basic idea is to render out the spheres and then blur them so they are overlapping, then use a step function to make them look like they are blobs.

Scene overview:

I used our elastic physics patch for some nice looking movement, but you could also use expo smoothing.

https://sugar.popul-ar.com/product/spark-elastic-physics

In any case, you take the world position of the face tracker (using a null object), and apply that to the world position of the spheres.

Blurring:

I’m using blur kit because of the precision and flexibility. You might need to spend some time tweaking these values to avoid any weird artifacts.

https://sugar.popul-ar.com/product/blur-kit

Lighting:

This is super basic manual lighting, using normals that are defined in the material shader (seen in the first screenshot).

Compositing:

The magic blobby part happens when you apply the step function here, which is used to mask out the lit orb texture. Then you slap it on the camera texture and it’s done!

Here’s the sphere material settings. I mostly just wanted them to blend together. You could probably do this with a flat material too.

4 Likes

Jeez Josh, I was looking for a much simpler solution, this is mind blowing.

This is what I achieved by using simple sdfs:

Here’s the project file if someone’s looking for that:
Simple 2D Blob.arprojpkg (399.8 KB)

5 Likes

Hi Josh!
This is really amazing :star_struck:
I followed your whole process and reproduced the different steps but… obviously it doesn’t work :sweat_smile: Apart from using your elastic and blur patches, which I’d be happy to buy, but I’d like to validate this solution first.
Could you give me some pointers on what might be wrong with my project?




Thank you Josh :blush:

1 Like