tyFlow Forum
Invalidity of Rotation operator - Printable Version

+- tyFlow Forum (https://forum.tyflow.com)
+-- Forum: tyFlow Discussion (https://forum.tyflow.com/forum-1.html)
+--- Forum: Feature Requests (https://forum.tyflow.com/forum-4.html)
+--- Thread: Invalidity of Rotation operator (/thread-2505.html)



Invalidity of Rotation operator - zhangqingcheng - 07-07-2021

I found a strange phenomenon. When the Speed operator and the Point Force operator act on the particles at the same time, the Rotation operator cannot use the Travel Direction mode. As shown in the sample file.


RE: Invalidity of Rotation operator - tyFlow - 07-07-2021

The problem is that you have your Speed operator timing set to Continuous, so the Point Force is never able to contribute to the Rotation, because the Speed operator overwrites whatever velocity exists on the particle each frame, before the Rotation operator evaluates.

If you need the Speed operator set to continuous, place the Rotation operator above it.


RE: Invalidity of Rotation operator - zhangqingcheng - 07-08-2021

Thank you, the problem is solved. But I always feel that there is something wrong with the logic...
It doesn't matter, let's do it


RE: Invalidity of Rotation operator - tyFlow - 07-08-2021

Well the reason it's happening is simple:

A flow is evaluated in order of events, from top to bottom of each event.

So your event_001 is setting the velocity of particles to the exact same value each frame (because the Speed operator timing is set to continuous), then the Rotation operator is setting the rotation based on that same velocity value each frame (so the Rotation doesn't change). Then event_002 is evaluated and the Point Force operator changes the particle velocities in event_001...but that is happening after the Rotation operator has already evaluated so the Rotation isn't affected. And since the Speed operator in event_001 is set to continuous, the exact same thing repeats every frame...which causes the rotation of particles to never change (because each frame the Speed operator overwrites the changes made by the Point Force in event_002).

The reason why placing the Rotation operator above the Speed operator works, is because at the end of each frame the Point Force has made its velocity changes to the particles, so that at the beginning the next frame, the Rotation operator is still working with those velocities from the end of the last frame, before the Speed operator overwrites them, and thus the rotation of particles is influenced by the Point Force.

I know that might seem like a complicated explanation, but it all boils down to the evaluation order of events and operators.


RE: Invalidity of Rotation operator - zhangqingcheng - 07-08-2021

Thank you for your answers, my fans and I have benefited a lot