SMU Guildhall Graduate Catalog — 2024 Cohort 32 | Page 84

«

Chen Xu
Software Development
Fluid Simulation Using Position-Based Fluids with Real-Time Screen Space Rendering
This project aimed to achieve interactive , visually satisfying fluid behavior by addressing both simulation and rendering aspects simultaneously . For simulation , the project employs position-based fluids , a particle-based approach renowned for its stability and ease of implementation compared to force-based and grid-based methods . To attain real-time rendering capabilities , the project utilizes screen space rendering techniques , deviating from traditional mesh reconstruction methods . To optimize performance , the project leverages DirectX compute for efficient simulation computations .
Regarding simulation , the project utilizes a particle-based solver and applies position-based fluids using a Smoothed Particle Hydrodynamics ( SPH ) kernel for calculating the density and its gradient for each particle , taking neighboring particles into consideration . Implementing spatial hashing and particle sorting on the GPU is a crucial challenge that must be addressed to
efficiently identify neighboring particles .
After the simulation phase , the project employs screen space rendering techniques . Particle information from the GPU simulation is utilized to render smoothed screen space point sprites for a fluid-like appearance . A screen-space method generates normal maps from depth images and combines it with thickness images , enabling reflection and refraction effects on fluid surfaces . Surface shading of fluids in screen space captures light interactions , while caustics generation simulates light patterns on interacting surfaces , enhancing realism .
By combining these simulation and rendering techniques , this project aims to deliver an interactive and visually compelling fluid simulation experience , leveraging the strengths of position-based fluids and screen space rendering approaches while optimizing performance through parallelized GPU computations .
84 SOFTWARE DEVELOPMENT