Context: Fluid-particle systems are seldom used in games, the apparent performance costs of simulating a fluid-particle system discourages the developer to implement a system of such. The processing power delivered by a modern GPU enables the developer to implement complex particle systems such as fluid-particle systems. Writing efficient fluid-particle systems is the key when striving for real-time fluid-particle simulations with good scalability. Objectives: This thesis ultimately tries to provide the reader with a well-performing and scalable fluid-particle system simulated in real-time using a great number of particles. The fluid-particle system implements two different fluid physics models for diversity and comparison purposes. The fluid-particle system will then be measured for each fluid physics model and provide results to educate the reader on how well the performance of a fluid-particle system might scale with the increase of active particles in the simulation. Finally, a performance comparison of the particle scalability is made by completely excluding the fluid physics calculations and simulate the particles using only gravity as an affecting force to be able to demonstrate how taxing the fluid physics calculations are on the GPU. Methods: The fluid-particle system has been run using different simulation scenarios, where each scenario is defined by the amount of particles being active and the dimensions of our fluid-particle simulation space. The performance results from each scenario has then been saved and put into a collection of results for a given simulation space. Results: The results presented demonstrate how well the fluid-particle system actually scales being run on a modern GPU. The system reached over a million particles while still running at an acceptable frame rate, for both of the fluid physics models. The results also shows that the performance is greatly reduced by simulating the particle system as a fluid-particle one, instead of only running it with gravity applied. Conclusions: With the results presented, we are able to conclude that fluid-particle systems scale well with the number of particles being active, while being run on a modern GPU. There are many optimizations to be done to be able to achieve a well-performing fluid-particle system, when developing fluid-particle system you should be wary of the many performance pitfalls that comes with it.
Vätskebaserade partikelsystem används sällan inom realtidsspel. Dessa system är väldigt prestandakrävande, till den grad att de avskräcker utvecklare från att implementera dem i sina realtidsspel. GPGPU ger utvecklare möjligheten att implementera komplexa partikelsystem, såsom vätskepartikelsystem, och simulera dessa system i realtid. Den här uppsatsen utforskar två olika fysikmodeller som kan användas för vätskesimulering, och sedan utförs det prestandamätningar under varierande omständigheter. Baserat på dessa prestandamätningar så kan slutsatser dras om hur skalbart ett vätskepartikelsystem är, alltså hur prestandan sjunker i förhållande till antalet partiklar i systemet. Slutsatser som dras efter att samtliga mätningar har utförts är att dessa system har en god skalbarhet, men att det finns många prestandafallgropar man måste se upp för när man utvecklar ett vätskepartikelsystem.