Motion Blur Problem with Geometry Nodes: Delete Geometry

So I wanted to an animation where the geometry is being deleted based on a distance field.

BUT I have a problem with motion blur.
It’s because the indices get mixed up every time one object gets deleted and it looks like they are jumping all over the scene.

Here you can see the problem:


MotionBlur_Problem.blend (552.0 KB)

So the reason is clear to me.
Do you guys know if there is a simple way to fix it?

Scaling instances to 0% also produces motion blur artifacts.
Setting material to transparent would be a bit problematic when I have more materials.

Maybe there is a way to set the object as renderable / not renderable in Geometry Nodes?

It would be nice if there was a node “Hide Geometry” in Geometry Nodes :slight_smile:

Have you tried setting the motionblur dropsown feom centee of frame to either start of frame or end of frame?

Worth a try - it removes motionblur when objects teliport around using constant interpolation, so it may work here.

I think you are supposed to give each instance a unique id.

@Lumpengnom Yes!
That is the solution :slight_smile:
Thank you!

Just setting the id before deleting geometry worked!

@yogyog Thank you for the idea.
I don’t really like setting the motion blur to the start or end of the frame. So I try to avoid it.

Hi there! Can you explain, please, how that should be done?

You use the “set ID” node to give each instance a unique ID. In the first image you can see that the index values of the instances correspond with the IDs.

But when I delete a couple of the instances the index numbers of the objects change because index numbers allways simply count up from 0 to the max number of instances available.
So if you delete instance 2 then instance 3 will become instance 2.
Blenders motion blur will then think that instance 2 has changed position.

To avoid this you can assign an ID. This number is consistent, as can be seen in the second image. Blenders motion blur will us the ID instead of the index if an ID is present:

Thank you very much!