Topology-Aware Neighborhoods for Point-Based Simulation and Reconstruction

Thumbnail Image
Journal Title
Journal ISSN
Volume Title
The Eurographics Association
Particle based simulations are widely used in computer graphics. In this field, several recent results have improved the simulation itself or improved the tension of the final fluid surface. In current particle based implementations, the particle neighborhood is computed by considering the Euclidean distance between fluid particles only. Thus particles from different fluid components interact, which generates both local incorrect behavior in the simulation and blending artifacts in the reconstructed fluid surface. Our method introduces a better neighborhood computation for both the physical simulation and surface reconstruction steps. We track and store the local fluid topology around each particle using a graph structure. In this graph, only particles within the same local fluid component are neighbors and other disconnected fluid particles are inserted only if they come into contact. The graph connectivity also takes into account the asymmetric behavior of particles when they merge and split, and the fluid surface is reconstructed accordingly, thus avoiding their blending at distance before a merge. In the simulation, this neighborhood information is exploited for better controlling the fluid density and the force interactions at the vicinity of its boundaries. For instance, it prevents the introduction of collision events when two distinct fluid components are crossing without contact, and it avoids fluid interactions through thin waterproof walls. This leads to an overall more consistent fluid simulation and reconstruction.

, booktitle = {
Eurographics/ ACM SIGGRAPH Symposium on Computer Animation
}, editor = {
Ladislav Kavan and Chris Wojtan
}, title = {{
Topology-Aware Neighborhoods for Point-Based Simulation and Reconstruction
}}, author = {
Canezin, Florian
Guennebaud, Gaël
Barthe, Loïc
}, year = {
}, publisher = {
The Eurographics Association
}, ISSN = {
}, ISBN = {
}, DOI = {
} }