Analogous to SSAO to RTGI, there are several techniques to achieve "fake" fluid physics with much less performance cost. For example, most modern video games use a multitude of pre-rendered fluid animations, paired with normal mapping to simulate 3D, responsive fluid particles without tanking the performance. There are also new, parallizable fluid-simulation algorithms that utilizes GPU power to quickly compute fluid physics such as SPH: https://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics
I find it interesting that the authors of that article opted to store all of the particles in a linked list. From my observations of the speed obsessed C++ community, linked lists are almost always shunned in favor of contiguous storage (even in the presence of operations typically thought of as favorable for linked lists). I wonder if this decision was due to differences in hardware between then and now.
Analogous to SSAO to RTGI, there are several techniques to achieve "fake" fluid physics with much less performance cost. For example, most modern video games use a multitude of pre-rendered fluid animations, paired with normal mapping to simulate 3D, responsive fluid particles without tanking the performance. There are also new, parallizable fluid-simulation algorithms that utilizes GPU power to quickly compute fluid physics such as SPH: https://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics
This paper explores the idea of SPH and particle-based vs grid-based fluid simulation further if anyone is curious: https://cg.informatik.uni-freiburg.de/intern/seminar/gridFluids_fluid-EulerParticle.pdf
I find it interesting that the authors of that article opted to store all of the particles in a linked list. From my observations of the speed obsessed C++ community, linked lists are almost always shunned in favor of contiguous storage (even in the presence of operations typically thought of as favorable for linked lists). I wonder if this decision was due to differences in hardware between then and now.