Another example video I just took: https://i.gyazo.com/8c8a234c67f241fa468d0f8770a0626d.mp4
The white number is p.lifespan. It's being set to 2097152.0 whenever camera.z > p.z (~= 288, not 0) for whatever reason which I tested some more after recording the video. It decreases over time as it should otherwise (time_factor is at 0.95 btw for gameplay reasons).
Range of var is +-1048576.999 (according to the manual), and if we take 1048576*2 we get 2097152. Hm! As if the var was treated as unsigned and had a range over-/ underflow.
(I do not want to check for let's say if(lifespan > 1000) and kill the particle to hide that bug, I want to understand it.)

EDIT: camera.z > p.z was a coincidence it seems. Here's another shot where the particle would only stay opaque and "count down" when near the top of the screen. I press a button to set the lifespan to 4 and it fades out correctly:
https://i.gyazo.com/baf621d657baa5e8a9b12b1b42a66af2.mp4

Just for reference, a GPU (and CPU for depth) animated mushroom, not showing for bones anim: https://i.gyazo.com/619a573fe8bfd960912b35bd2f32ed57.mp4
(Glitches happen as well with the additional rendering pass deactivated, tried that early on.)

Last edited by Superku; 09/24/19 20:47.

"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends