[1] Agenda Circling Forth http://www.youtube.com/watch?v=L5w7Gh7WBjw
[2] Ceasefire http://www.youtube.com/watch?v=Grqb1aIa_4s
http://directtovideo.wordpress.com/2011/05/03/numb-res/
( http://www.pouet.net/prod.php?which=56900 )
( https://www.youtube.com/watch?v=LTOC_ajkRkU )
Subtle presentation a great effect, but this bit from the demo's nfo is kind of insane:
3d smoothed particle hydrodynamics with a fully-featured solver,
supporting surface tension, viscosity and collisions with arbitrary meshes.
rendering as metaballs converted to triangle meshes with marching cubes.
simulating around 250,000 - 1 million particles per frame and generating & rendering
several million vertices per frame during triangulation.
except we wanted to do it in realtime. on a consumer gpu. on vanilla directx 9.
no cuda/compute, no geometry shaders. (they'd probably be too slow anyway.)
with everything else youd expect from a modern demo going on around it and on top.
the best possible lighting, depth of field, post-process antialiasing.
twice. (for stereoscopic 3d.)
with style.> The problem with SPH in realtime is it’s really really hard. The simple explanation of the algorithm is: “take all the particles near my particle and perform some force exchange between them”.
At this point I was expecting a long discussion on all the clever tricks they have found to calculate the force exchange between thousands of particles in a snap. And instead...
> The force exchange is easy; the “all the particles near my particle” is a bitch. On GPU it’s even more of a bitch; and in 3D it becomes an order of magnitude more of a bitch.
> [...]
> The problem is simply the neighbourhood search. You end up with a variable amount of fast-moving particles affecting each particle, where it’s hard to pick an upper bound – so the spatial database is hard to construct. If you solve the neighbourhood search, you can solve SPH.