The aim for this masterclass was always to make something beyond a beginner tutorial on fluids simulations with the aim of attempting to make something practically useful in the context of a limited simulation budget, like games. Having some experience in fluid dynamics and fluid simulation implementations is recommended, but not required. The core focus of this masterclass will likely be more in the domain of GPU optimizations than in physics, but I will nevertheless attempt to make the content reasonably self-contained. There’s only 3 hours allocated of the class, so I’ll probably have to refine the exact content and topics for the course all the way up until the day of the class.
Requirements
- Access to a Windows or Linux computer. No Mac support, sorry!
- A discrete GPU. Although it’s possible to use an integrated GPU, but it’ll run at 1/20x speeds.
- Experience with C-like languages and shading languages.
- Have a basic understanding of how a GPU works and how to do GPU programming, including tradeoffs and optimizations.
If you don’t have access to a computer, or don’t have a computer with a decent GPU and/or Windows or Linux, then it’s perfectly possible (and recommended) to team up with someone else during the class. The provided code and demo application and benchmarks will use Odin and OpenGL (GLSL), in parts because it’s what we use at work, and also due to time and resource constraints on my end. Familiarity with any C-like language and any shading language should allow anyone to follow along and to complete the hands-on tasks without much of an issue as almost all of the work will be on the GPU side. I’ll hopefullly be able to share the code some days in advance.
Recommended reading
- Bridson’s book “Fluid Simulation for Computer Graphics” is probabably the most self contained and useful book on the topic: https://www.amazon.com/Simulation-Computer-Graphics-Robert-Bridson/dp/1568813260.
- Should be approachable to anyone with a basic calculus and/or physics back background
- Covers a lot, but chapters 1, 2, 3, 5 and 6 are the most relevant.
- Originally based on a Siggraph ’07 course: https://www.cs.ubc.ca/~rbridson/fluidsimulation/
- Jos Stam’s “Stable Fluids” paper from Siggraph ’99: https://dl.acm.org/doi/10.1145/311535.311548
- Simpler and possibly more approachable for the less experienced in math and physics compared to Bridson’s book
- Related paper from Siggraph ’03 called “Real-Time Fluid Dynamics for Games”: https://www.dgp.toronto.edu/public_user/stam/reality/Research/pdf/GDC03.pdf
- Stam also has an excellent book called “The Art of Fluid Simulations”, which has a lot of interesting background, context and history: https://www.amazon.com/Art-Fluid-Animation-Jos-Stam/dp/1498700209
- Various GPU Gems papers:
- Various online tutorials and references (typically based on the above):