Physically-Based Simulation Final Presentation
Group 11: Longteng Duan, Guo Han, Boxiang Rong
Bunny in the Water
Position Based Fluids
Feature Overview
Successfully accomplish all the targets outlined in the proposal!
Progress at Milestone
Progress Since Then
Static Rigid Body
Static Rigid Body
Static Rigid Body
AABB rough detection top-down view
AABB rough detection side view
Static Rigid Body
SDF narrow detection top-down view
Static Rigid Body
Collision Response
Diffuse Material
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
[1] Ihmsen, Markus & Akinci, Nadir & Akinci, Gizem & Teschner, Matthias. (2012). Unified spray, foam and air bubbles for particle-based fluids. The Visual Computer. 28. 669-677. 10.1007/s00371-012-0697-9.
Diffuse Material
for all particles i in FluidParticles do
= computePotentials( )
AllDiffuseParticels ← generateDiffuseParticles( )
for all particles j in AllDiffuseParticles do
removeParticles(AllDiffuseParticels)
advectParticles(AllDiffuseParticels)
(simulation loop)
Diffuse Material
= computePotentials( )
AllDiffuseParticels ← generateDiffuseParticles( )
for all particles j in AllDiffuseParticles do
removeParticles(AllDiffuseParticels)
advectParticles(AllDiffuseParticels)
(simulation loop)
for all particles i in FluidParticles do
Remove diffuse particles that used up its lifetime
Diffuse Material
= computePotentials( )
AllDiffuseParticels ← generateDiffuseParticles( )
for all particles j in AllDiffuseParticles do
removeParticles(AllDiffuseParticels)
advectParticles(AllDiffuseParticels)
for all particles i in FluidParticles do
(simulation loop)
Change of diffuse particles
Diffuse Material
= computePotentials( )
AllDiffuseParticels ← generateDiffuseParticles( )
for all particles j in AllDiffuseParticles do
removeParticles(AllDiffuseParticels)
advectParticles(AllDiffuseParticels)
(simulation loop)
Generate new diffuse particles
for all particles i in FluidParticles do
Visualize: spray / foam / bubbles
Classifying diffuse particles:
Spray
Foam
Bubble
Diffuse particles
What We Have Now
Real-time
~25FPS
Offline Rendering
Offline Rendering
Fluid mesh
Diffuse material point cloud
Offline Rendering
Low-poly watertight bunny mesh for simulation
High-poly bunny mesh for rendering
Offline Rendering
Blender setup to generate spherical mesh at diffuse particle positions
Offline Rendering
Blender material setup for diffuse particles
Diffuse particle zoom in
Final Demo
960px * 540px | 64 Samples | 61k Particles
References
[1] Macklin, Miles, and Matthias Müller. "Position based fluids." ACM Transactions on Graphics (TOG) 32.4 (2013): 1-12.
[2] Ihmsen, Markus, et al. "Unified spray, foam and air bubbles for particle-based fluids." The Visual Computer 28 (2012): 669-677.
[3] Taichi Blog for Collision Handling: https://docs.taichi-lang.org/blog/acclerate-collision-detection-with-taichi
[4] Taichi PBF 2D Example by Ye Kuang: https://github.com/taichi-dev/taichi/blob/master/python/taichi/examples/simulation/pbf2d.py
[5] SPlisHSPlasH Library for Diffuse Particles Synthesis: https://github.com/InteractiveComputerGraphics/SPlisHSPlasH
Appendix / CPU/GPU Parallelization
…
…
Taichi's parallelization optimization cannot be leveraged in this implementation.
Appendix / CPU/GPU Parallelization
…
…
Taichi's parallelization optimization can be used now!!!