2
$\begingroup$

Heyo ya'all!

I've been trying to wrap my head around a concept. Is there a way to distrubute points on the faces of an animated mesh, without some disappearing/appearing due to the mesh transformation?

For context the mesh is also generated and animated via geometry nodes.

The concept is simple:

  1. Generate a box
  2. Use said box as points to distribute spheres inside of it
  3. Animate said sphere's scale
  4. Merge everything together to create a "blob-like" appearance (mesh to volume -> volume to mesh)

However now I wanted to add some spikes to this These shouldn't be "remeshed" so my idea was to distribute them along the faces of the blob and then join them afterwards.

However since the blob is animated the "Distrubute Points on Faces" node causes the glitching.

Here's the current node tree: enter image description here

And the result of the geo nodes without the spikes so far: enter image description here

Any help is highly appreciated! Cheers!

$\endgroup$

1 Answer 1

3
$\begingroup$

The problem with remesh is that you have absolutely no consistency between frames. In case of deformations, you can save original positions, or use a constant UV Map, like I do here:

Geometry nodes - Disappearing points on deforming surface

However, you still can have some consistency: you can use a simulation zone, to store your original positions, and you can move your points to the nearest surface, instead of respawning them. I additionally move the points towards their original, first spot, so that they maintain their position; it's still possible that some point will be captured in some kind of pocket, and the animation could be such, that traveling is possible only in one direction, and so the point will never return...

$\endgroup$
4
  • $\begingroup$ That did it! Thank you so much man, there's no way I would have came up with that solution on my own ^^ I'd have a follow up question on this however, maybe you'll have an idea. So now I can position the spikes with a rather consistent location that only moves them a little bit, how would one align them to the normals of the remeshed object tho? Also once that is done is there a way to make them ignore all follow up transformation of the mesh? I'm thinking that if they follow the normals of the mesh through it's transformation it'll just lead to them twitching too much. $\endgroup$
    – Normaly
    Feb 16 at 11:06
  • 1
    $\begingroup$ @Normaly sample nearest surface to get a normal. This gets a face normal, however, not a smooth normal. You can calculate a smooth normal based on the distances to the vertices of the face (you can make it easier on you by triangulating the mesh, then it's just 3 verts per face always). The twitching should be minimal with this approach but in the end if the surface changes rapidly, so too everything relying on the surface. $\endgroup$ Feb 16 at 11:25
  • $\begingroup$ Geo nodes are finally starting to click with me more and more, figured out the first part of this approach based on your reply! However how would one calculate the smooth normal? As in what nodes would be used for that? If it's easier just direct me towards some documentation or resources so I can try and figure it out on my own. But I feel like I'm almost at the finish line here $\endgroup$
    – Normaly
    Feb 16 at 14:44
  • $\begingroup$ I'm not sure about the exact algorithm Blender uses, but to get rid of "twitching", just weighted average based on distances is enough (well, it would be if the remesher was smooth, and it isn't). And if you want to get rid of twitching entirely, simulate the rotation change... $\endgroup$ Feb 16 at 15:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .