Particle-based Viscoelastic Fluid Simulation Simon Clavet, Philippe Beaudion, and Pierre Poulin

Download Report

Transcript Particle-based Viscoelastic Fluid Simulation Simon Clavet, Philippe Beaudion, and Pierre Poulin

Particle-based Viscoelastic Fluid Simulation

Simon Clavet, Philippe Beaudion, and Pierre Poulin LIGUM, Dept. IRO, Universite de Montreal Eurographics/ ACM SIGGRAPH Symposium on Computer Animation

Abstract ◇ Particle-based Fluid Simulation의 직관적인 구조 ◇ 점탄성과 표면장력 효과 ◇ elastic과 plastic은 rest length를 변화시키는 Spring으로 얻음 ◇ 본 논문의 점탄성과 튀기는 효과에서 안정적임

OverView ◇ Previous work ◇ Integration scheme ◇ Density relaxation ◇ Viscoelasticity ◇ Interactions with objects ◇ Implementation details, results, and conclusion

Previous work ◇ Grid기반 기술 – High-quality liquid animation [Enright et al. 2002] – Viscous, elastic, and plastic materials [Goktekin et al. 2004]

Previous work ◇ Particle기반 기술 – SPH for highly deformable bodies [Desbrun, Gascuel 1996] – Interactive water simulation [M

ü

ller et al. 2003] – Elastic and plastic materials [M

ü

ller et al. 2004]

Apply gravity Integration Scheme

Integration Scheme Apply gravity and viscosity

Integration Scheme Apply gravity and viscosity Advance to predicted positions

Integration Scheme Apply gravity and viscosity Advance to predicted positions Relax (density and springs)

Integration Scheme Apply gravity and viscosity Advance to predicted positions Relax (density and springs) Obtain new velocities

Integration Scheme Apply gravity and viscosity Advance to predicted positions Relax (density and springs) Obtain new velocities

Integration Scheme Apply gravity and viscosity Advance to predicted positions Relax (density and springs) Obtain new velocities

Density Relaxation ◇ 각 파티클에 대해, - 그것의 Density를 계산함 - 그 rest-density로 그 파티클과 이웃의 파티클을 수정함

Density Relaxation ◇ Density : 이웃 파티클 가중치의 합 

i

 

j

N

(

i

)    1 

r ij h

   2 density kernel h r

◇ Pseudo-Pressure

P i

~ 

i

  0 Density Relaxation

P

i

 0 

i

◇ Pseudo-Pressure

P i

~ 

i

  0 Density Relaxation  0 

i

iii

Density Relaxation ◇ Displacement는 distance kernen에 의존

D

~

P i

  1 

r h ij

  h r

i

◇ 운동량 보존 Density Relaxation

◇ 운동량 보존 Density Relaxation

Density Relaxation ◇ 파티클들은 이웃 파티클들을 잡아당김으로써 rest length에 도달할 수 있음  Clustering

Double Density Relaxation ◇ 가까운 파티클들을 밀어내기 위해 또 다른 힘을 사용 ◇ Density와 유사한 near-Density를 정의 density kernel (1-r/h) 2 near-density kernel (1-r/h) 3 h r

Double Density Relaxation ◇ 각 파티클에 대해, - Density와 Near Density를 계산 - Density와 near-Density로 접근하는 그 파티클과 예견된 이웃 파티클을 수정

Double Density Relaxation ◇ 각 파티클에 대해, - Density와 Near Density를 계산 - Density와 near-Density로 접근하는 그 파티클과 예견된 이웃 파티클을 수정

Double Density Relaxation ◇ Near-density는 zero rest value를 가짐

P i

~ 

i

  0 ◇ Displacement에 대한 새로운 텀을 추가

P i NEAR

~ 

i NEAR D

~

P i

  1 

r ij h

  

P i NEAR

  1 

r ij h

  2

OverView ◇ Previous work ◇ Integration scheme ◇ Density relaxation ◇

Viscoelasticity

◇ Interactions with objects ◇ Implementation details, results, and conclusion

Elasticity

F

~ (

L

r

)

r L

◇ 이웃 파티클들 사이의 Spring을 추가 ◇ rest-length L과 interaction length h가 같을 때, Spring 힘은 소멸됨 force magnitude ~  1

L h

  (

L

r

)

Plasticity 

L

◇ 현재의 rest-length를 변화시킴 ◇ Linear plasticity 

L

◇ Non-Linear plasticity ~  (

r

L

) - Deformation이 충분히 큰 경우에만 plastic flow 

L L r L

L r

Plasticity ◇ Interaction range h 안쪽에 있는 경우, 두 파티클들 사이에 Spring을 추가함 ◇ 그 파티클의 rest-length가 interaction range h보다 크게 됬을 때, Spring을 제거함

Interactions with objects

Interactions with objects

Implementation Details ◇ 공간적인 hashing을 통해 이웃들을 찾음 ◇ Surface는 마칭큐브로 만듦 ◇ OpenGL display

◇ 20,000 paticles = 2sec/frame ◇ 1,000 paticles = 10 FPS Result

Conclusion ◇ 안정적이고 간단한 Particle기반 Fluid Simulation을 통합 ◇ Double density relaxation을 통한 Incompressiblity와 표 면 장력 효과 ◇ Viscoelasticity에 대한 동적 rest-length spring

Future Work ◇ 다중 파티클 ◇ 방향이 들어간 Spring을 가지고 회전하는 파티클에 적용