Interpolate ticks / particles passing property tests
#1
Hi,

Im not sure if its a bug or a "feature".

For the example scene: Particles should be killed when X>100.
Looks correct in the viewport.
Rendering with multi pass reveals the particles are passing through the 100 limit.

Im not quite sure how it happens because the movement is obviously interpolated towards a particle that does not exist.

Is there any way to render this correctly?

Could not see the attachment, alternate link to download scene: https://we.tl/t-XHX5pFXf9W
  Reply
#2
">100" is dependent on your time step. If it's set to frame, the particles will be deleted at frame 101. If it's set to 1/2 frame, they'll be deleted at frame 100.5, etc.

Multi-pass rendering iterates over frame ticks, of which there are typically 160-200 per frame, depending on your framerate. So just because the timeline has reached frame 100.00384 doesn't mean the deletion event has also been reached, thus the particle will still be alive.
  Reply
#3
(01-29-2020, 05:19 PM)tyFlow Wrote: ">100" is dependent on your time step. If it's set to frame, the particles will be deleted at frame 101. If it's set to 1/2 frame, they'll be deleted at frame 100.5, etc.

Multi-pass rendering iterates over frame ticks, of which there are typically 160-200 per frame, depending on your framerate. So just because the timeline has reached frame 100.00384 doesn't mean the deletion event has also been reached, thus the particle will still be alive.

This manifests itself no matter what you set the time step to, in my example scene it was 1/32 with the timing on the property test set to Continous. If you change the timing on the property test to frame it still looks the same. It kind of feels that the property test operates on a full frame bases no matter what you set the time step to.
  Reply
#4
Oh, I know what the problem is. To get more precision in terms of particle lifetimes, you'll also need to disable caching. While operators are evaluated at subframes, the cache is saved on whole frames only....so even with very small time steps, the cache interpolator is only seeing lifetimes beginning/ending on whole frames. If you disable caching you shouldn't have that issue.
  Reply
#5
(01-29-2020, 09:25 PM)tyFlow Wrote: Oh, I know what the problem is. To get more precision in terms of particle lifetimes, you'll also need to disable caching. While operators are evaluated at subframes, the cache is saved on whole frames only....so even with very small time steps, the cache interpolator is only seeing lifetimes beginning/ending on whole frames. If you disable caching you shouldn't have that issue.

I see, hmm, crud...

Maybe sometime in the future there is an option to export the tyCache with the full fidelity of the simulation.
  Reply


Forum Jump: