BUG! "Test Action > Delete" does not import into Birth Flow, Particles appear again
#1
Exclamation 
So after 2 days I found it out:

Surface Test with Test Action "Delete", does not import properly into the next tyFlow with BirthFlow.

It only works, when I send out to a delete event (which messes up my flow, I have in my scenes more than 10 surface tests).

Reproduce:

1. Just delete with a surface test particles

2. import that into a birth flow and the deleted come up again...

I gues the same for Send out / Property Test / etc > Delete Action , I did not check

       
  Reply
#2
I can't reproduce this - a simple flow where a Surface Test deletes particles is imported properly using Birth Flow in a second flow (deleted particles are not imported).

Please post the scene where you're having the issue.
  Reply
#3
Of course I will send it, maybe this evening
  Reply
#4
Attached the example scene with screenshots... very simple to reproduce.

You will see that the boxx deletes the right side, but those come back when imported into birth flow or in tyCache.



.zip   ISSUE Example Send Out DELETE.zip (Size: 222.45 KB / Downloads: 10)
  Reply
#5
This is not a bug - you're just not deleting the particles when they go missing from the flow/cache.

As noted at the bottom of the Flow Update operator, particles will test TRUE when their matching ID is missing from the source. Just set the Flow Update operator's output mode to delete (or send to a deletion event) and the particles will be deleted.
  Reply
#6
I don't understand this.
Delete means delete to me... and this is what happens in the flow.
But does not happen after exporting.
- So does it mean they are invisible but still interact? Or are deleted in the Flow, but need to be marked as deleted as well in the Flow Update?
   
  Reply
#7
To understand what's happening, take a closer look at individual particles in your flow:

In your source flow your particle is being born at some frame (ex: frame 0), then it travels through space and at some other frame it enters your surface and is deleted (ex: frame 1).

In your reference flow your Birth Flow operator births the particle at frame 0. However, the Birth Flow operator does not do any deleting - it just births new particles it finds in your source flow. So at frame 1 when your source flow particle is deleted, the Birth Flow operator takes no action.

In your reference flow your Flow Update operator doesn't take any action on deleted particles (by default) either - at frame 0 it finds the particle in the source flow and updates its properties. However, at frame 1 the particle was deleted in your source flow, so Flow Update does nothing (by default) either - it can't find the particle with the matching ID in the source flow so it takes no action. However, as noted at the bottom of the Flow Update operator, if a particle has no matching ID in the source flow it will test TRUE in the Flow Update operator. If you use this to delete particles then the Flow Update operator will take action and delete the particle at frame 1 because it has no matching ID in the source flow.

Birth Flow and Flow Update are working as expected and are not birthing/affecting deleted particles in the source flow.
  Reply
#8
Okay, the setting works (attached screenshot)
And then I guess I can use the "delete" function for surface test without downsides)

- Is there a similar setting in the tyCache Object?

It's still unexpected to me, that "Send Out" gets a different meaning with deleting (Not really deleting). While Delete operator is a real delete.
Both times happens visually the same.
But important in practise is only to be aware of the difference.

Thanks!

   

For the tyCache I had to set this at "Element" - is that correct?

Thanks
   


Attached Files Thumbnail(s)
   
  Reply
#9
Just in case you misunderstand me:
It made a difference when I sent them out into a „delete operator“ event.
I can follow all your explanations, but the delete behaviour would then have to be the same for any other delete operation.
When I changed my flows to send out into delete event - instead  of using the integrated „delete“ - it was a different simulation and I did not have the mentioned issue.

(I did not try to reproduce although, because I stopped where I thought it already to be a bug. I never ever even knew that I have to delete actively in the birth flow. 
Last year I did a vast destruction setup with multiple caches without any unwanted former deleted particles in the birth flow update…. So something has either changed or it is a difference between delete straight in the surface test snd delete in a separate event. And that‘s the logic I didn‘t get)

Cheers
  Reply
#10
The implementation of the send out feature of the Flow Update operator was implemented in tyFlow v0.16062 (December 24 2019). Nothing related to how deleted particles are treated has changed since then.
  Reply
#11
Alright, so I maybe just never used it before without a separate delete event in a tyCache.

I meanwhile realized, that the simulation is different deoending whether I send out into a delete event or use „action delete“.
I explaining it to myself that the action is maybe just culling them and they still influence the simulation.
But it doesn‘t matter, as I know now how to handle it in a tyCache
and knowing I should not alter the method of deleting afterwards if I want to keep the same sim.
  Reply


Forum Jump: