A master’s thesis by Øystein Krog integrates into the open-source Ogre3d system to provide CUDA-accelerated smoothed particle hydrodynamics.
This work is part of my masters thesis in Computer Science at NTNU (Norwegian University of Science and Technology).
I have created a SPH library that uses the power of the GPU (through CUDA) to simulate fluids with extremely high performance (“real-time”).
In addition I have created a small demo application that uses Ogre to render the simulation interactively.
The application (and library) supports simple “wall” boundaries as well as “terrain” boundaries. The terrain is rendered using Ogre’s excellent new terrain component.
The results are impressive, and I almost swear I saw this at the SIGGRAPH Real-Time theater. If not, then something very similar. The ability to simulate thousands of particles in real-time is one of those very GPGPU-like problems.
The demo at SIGGRAPH first simulated the particles, then used a multi-pass rendering technique to make the result looks like real semitranslucent water.
gpusphsim – Project Hosting on Google Code. via Ogre3d Forums
Randall Hand: Yes, this is just like the SIGGRAPH demo, except my code is already available and open-source. AFAIK NVidia has said they will release the new fluid demo as a CUDA sample, but it is not out yet.
Ardi: actually this is quite a bit more complex.
You are partially right in that this resembles the particles demo in the CUDA SDK, because I employ the same data structure and acceleration algorithm.
The simulation itself though is different, the particles demo uses DEM (Distinct Element Method), basically just a bunch of balls that collide.
I use SPH (Smoothed Particle Hydrodynamics), which is an interpolation-approach to solving the Navier-Stokes fluid equations.
This requires both more data transfer/bandwidth and more calculations.
This is identical to the particle example in the Nvidia’s CUDA SDK with the exception of OGRE of course. Is the Nvidia’s Particle what you saw this at SIGGRAPH Real-Time theater?