Particle-Based Fluid Simulation for Interactive Applications Matthias Müller David Charypar Markus Gross
Abstract 이 논문에서는 SPH를 기반으로 자유표면을 시뮬레이션 하는 상호작용하는 기법 제안 Navier-Stokes 방정식으로부터 힘의 density을 계산하는 과정에 표면장력 효과를 더해주어 시뮬레이션 Eulerian 기반 방법보다 좋은 점 이 방법은 질량을 보존하고, 이류텀에서 복잡성을 줄일 수 있음 파티클로 유체의 표면을 직접 렌더링 할 수 있음
Abstract Marching cube 기법과 point splatting 기법을 사용하여 자유 표면을 추적하고 가시화 하는 기법 제안 이 논문에서의 animation 기법은 interactive 한 시스템에서 사용하기에 충분히 빠름 5000개 이상의 particle을 사용하는 사용자 기반의 인터렉션 모델에서 사용가능
Motivation 유체는 모든 삶의 환경에서 중요함 이러한 현상을 simulation하기는 복잡함 CFD(computational Fluid Dynamics)분야에서 오랜 시간 동안 연구되어 왔음에도 불구하고 여전히 많은 문제가 논의되고 있음 이류, 확산, 난류, 표면 장력과 같은 현상들이 복잡하게 상호작용하기 때문 유체 현상을 일반적으로 독립되어 simulation 한 후, 나중에 가시화 가능한 정확한 결과를 얻어 항공 역학이나 터빈 또는 파이프의 최적화를 수행하기 위함
Motivation 실시간 유체 simulation 실시간으로 유체를 simulation 하는 덜 정확한 기법은 새로운 application의 다양성을 이끌어냄 우선 디자인 단계에서 수행되는 실시간 기법을 돕는 유용한 발상에 대해서 이야기함 의학 simulation, computer game, 여러 가지 가상 환경에 사용될 수 있는 실시간 simulation 기술을 사용한 application에 관해 다룸
Motivation Pouring water into a glass at 5 frames per second
Related Work Computational Fluid Dynamics의 역사는깊음 Claude Navier(1822)와 George Stokes(1845)는 유체의 운동에 관한 Navier-Stokes 방정식을 정립 Navier-Stikes 방정식 외의 두 가지 보존식이 있음 밀도 보존을 내포하는 continuity 방정식 에너지를 보존하는 state방정식
Related Work 이러한 수식들을 수치적으로 컴퓨터를 이용하여 풀이하는 많은 방법들이 CFD분야에서 제안됨 지난 20년간 컴퓨터 그래픽스 분야에서 특별한 유체 시뮬레이션 기법이 제안됨 T.Reeves(1983)흐트러진 object들을 particle system으로 모델링하는 기술을 소개 Particle기반의 Lagrangian기법과 격자기반의 Eulerian기법이 둘 다 그래픽스 분야에서 사용
RelatedWork Desburn과 Cani와 Tonnesen은 부드러운 객체이 애니메이션을 위해 particle 사용 Particle은 표면을 애니메이션 하는데 사용 되고 implicit표면을 제어하고, 용암을 애니메이트하는데 사용 최근 Eulerian기반의 유체 시뮬레이션은 물과 부드러운 객체와 녹는 효과 등에서 대중적으로 사용
RelatedWork Interactive 한 시스템에서 사용 가능할 만한 매우 적은 수의 기술이 있음 격자 기반의 Stam의 방법은 실시간 유체 시뮬레이션에서 중요함 Height field를 사용하는 특수한 경우의 인터렉티브한 애니메이션 기술 우리는 임의의 유체 움직임을 애니메이션 하시 위해 SPH를 사용하는 particle기반의 방법을 제안
Our Contribution 자유표면의 유체를 시뮬레이션 하기 위해 SPH기반의 기법을 사용 표면장력을 모델링하는 방법을 제안하고 Navier-Stokes방정식으로부터 점성과 pressure field을 이끌어낼 것임 실시간 환경을 제안하기 위해 새로운 Smoothing Kernel을 디자인 함 표면 탐색과 표면의 렌더링은 인터렉티브한 속도를 내기 어려운 문제이며, 이를 해결하는 가능한 해법을 설명할 것임
Smoothed Particle Hydrodynamics SPH는 particle system을 위한 보간방법 SPH를 사용하면 각각의 필드값은 particle의 위치에 따라 결정 방사형으로 대칭인(radial symmetrical) smoothing kernel을 이용하여, r위치에서 스칼라 필드 값 A는 모든 파티클의 공헌하는 양(contribution)의 weighted sum에 의해 보간해서 구해짐
Smoothed Particle Hydrodynamics W(r , h) = W(-r , h)이며 normalize된 함수 부피(vi) = mi/ρi 질량은 constant,밀도는 변함
Smoothed Particle Hydrodynamics SPH의 gradient 와 Laplacian 는 오직 SPH kernel에만 영향을 줌 SPH의 문제점 SPH를 이용하는 유체 방정식은 힘의 균형과 운동량의 보존과 같은 물리적 특성을 보장하지 못함
Modeling Fluids with Particles Eulerian 의 방법에서 유체는 velocity field, density field, pressure field 으로 묘사됨 질량보존의 법칙과 Navier-Stokes 방정식을 보장함 질량 보존의 법칙
Modeling Fluids with Particles Navier – Stokes 방정식 grid 기반의 방법을 이용할 때 보다 particle기반을 이용하면 위의 두 방정식이 간단해짐 질량 보존의 법칙을 고려하지 않아도 됨 convective term을 필요로 하지 않음 substantial derivative of the velocity field
Modeling Fluids with Particles Particle이 받는 힘은 N-S방정식의 오른쪽 항들의 합 particle의 가속도를 구할 수 있음
Pressure SPH에 의해 압력 을 계산할 수 있음 하지만 위의 식은 symmetric 하지 않음 중앙에서 kernel의 gradient값은 0이기 때문에 파티클 i의 압력은 j의 압력만 가지고 계산 일반적으로 두 particle의 압력은 같지 않으므로 symmetric 하지 않음
Pressure 이 논문에서 제안하는 빠르고 안정적인 압력을 구하는 방정식(symmetric함) k는 기체상수, 는 기준 밀도(rest density)
Pressure 위의 방정식에서 ρ는 아래의 방정식으로 구할 수 있음 Pressure force(fpressure)는 압력의 미분에 의존하기 때문에 와 k같은 offset은 수치적으로 압력힘에 영향을 미치지 않음 그러나 offset은 SPH에 의해 부드럽게된 field의 gradient값에 영향을 줌 또한 simulation이 수치적으로 더욱 안정됨
Viscosity SPH의 기법에 의해 점성은 다음과 같은 비대칭 힘으로 계산할 수 있음 Velocity는 particle과 particle 사이에서 다른 값을 가지므로 viscosity force은 속도의 차이 값에 의존
Viscosity 본 논문에서 제공하는 자연스럽고 대칭적인, 속도의 차이 값을 이용하여 viscosity force를 구하는 방정식이 있음 위의 식은 얼마나 끈적한가를 알 수 있음 두 입자의 속도의 차이가 많이 나면 서로 잡아당기는 힘이 강함 크기는 같고 방향은 반대인 힘이 상호 작용
Surface Tension particle(molecules)은 주변에 있는 particle끼리 서로 끌어 당기는 경향이 있음 fluid 안에서는 당기는 힘이 모든 방향에서 같고 평형상태를 이루었음 하지만 표면에서는 평형상태를 이루지 않음 표면 장력은 표면의 normal방향으로 작용 표면장력은 curvature를 최소화 시키려는 경향이 있음 curvature가 크면 클수록 힘의 세기도 큼 표면장력은 curvature에 비례
Surface Tension 표면 장력은 장력계수σ에 의존적임 유체의 표면은 추가적인 필드를 사용함으로 규명할 수 있음 color field라고 불리는 이 필드는 particle이 있는 곳은 1, 다른 곳에서는 0을 가짐 본 논문에서는 smoothed color field 사용
Surface Tension color field의 gradient로 normal field를 구함(pointing into the fluid) normal field의 divergence값은 표면의 곡률 divergence는 내적되어지는 vector의 방향으로의 변화량( 유체의 안쪽방향으로 들어오는 vector양이 plus값) curvature는 plus값을 가져야 하므로 다음과 같은 식을 얻을 수 있음
Surface Tension curvature of the surface 표면장력(surface traction 끄는 힘)은 장력계수와 curvature에 비례 방향은 normal field 방향
Surface Tension 표면주위에 있는 particle에 의한 표면장력을 분배시키고 힘의 밀집장(force density field)을 구하기 원함 그래서 ‘0’이 아닌 normalize된 스칼라 field |n|을 곱해주어 다음과 같은 식을 얻음
External Forces 본 논문에서는 외력을 제공함 중력, 유저의 상호작용으로 인한 particle사이의 충돌 이러한 힘들은 SPH를 사용하지 않고 입자에 적용 본 논문에서 입자가 물체와 충돌이 일어났을 경우 반대방향 속도를 주고, 물체 반대방향으로 밀어냄
Smoothing Kernels SPH의 안전성, 정확성, 속도는 smoothing kernel에 의존 - 두꺼운 선은 kernel, 얇은 선은 kernel의 gradient, 점선은 kernel의 laplacian wpoly6 wspiky wviscosity
Smoothing Kernels Kernel은 바운더리에서 미분 값이 ‘0’ 이어서 안전성에 도움이 됨 거리계산에서 제곱근 연산 없이 결정 압력이 높은 압력으로 뭉치는 경향이 있음 particle들이 가까이 있으면 kernel중앙의 gradient값이 ‘0’이므로 척력이 사라짐
Smoothing Kernels Desburn은 중앙 주위에서 gradient값의 사라짐이 없는 spiky kernel을 사용 척력보장, 바운더리에서 1차,2차 미분이 ‘0’
Smoothing Kernels 점성은 마찰력에 의한 현상이므로 온도에 따른 유체의 운동 에너지의 변화에 따라 감소 Standard kernel을 사용 할 경우 이러한 성질을 반영하지 못함 두 개의 particle이 가까워 지면 두 particle의 상대 속도가 증가되는 음의 값을 가짐
Smoothing Kernels Particle 수에 기반하는 실시간 어플리케이션에서는 이러한 효과는 안정성의 문제를 가져옴 Viscosity force 을 구할 때 아래와 같은 kernel사용
Smoothing Kernels 아래의 추가적인 특성에 따라 Laplacian은 어디서나 양의 값을 가짐 이 kernel의 사용은 어떠한 damping force (감쇠력)에 대해서 안전성을 높여줌
Simulation Leap frog scheme사용 식(8)의 적분을 위해 힘을 한 번에 계산 할 수 있는 second order scheme은 우리의 제안 방법에 어울림 더 나은 결과를 위하여 adaptive time step인 Courant-Friedrichs-Lewy condition을 사용
Surface Tracking and Visualization Color-field 와 color-field의 gradient field인 n = 는 표면을 이루는 particle과 표면의 normal 값 particle i가 이면 표면particle로 정의함( 은 threshold값) particle i위치에서의 표면particle 의 normal값은 임
Point Splatting Particle의 normal값에 대한 정보는 있지만 particle의 연결정보는 가지고 있지 않음 Point splatting에서는 이러한 타입의 정보를 다룸 그러나 이러한 방법들은 10,000개나 100,000개의 point로 이루어진 스캔 데이터를 이용함 우리는 오직 표면에 있는 작은 천 단위의 particle을 사용
Point Splatting 그럼에도 나타난 결과를 보면 그럴듯한 결과가 나타남 우리는 최근 유체의 표면을 upsample하는 방법을 사용함 표면particle의 color field 정보를 보간 하여 렌더링에 사용되는 추가적인 particle의 위치를 구함
Marching Cubes free surface를 가시화 시키는 또 다른 방법은 cs의 iso surface를 렌더링 하는 것임 iso surface를 triangulate하기 위해 marching cube algorithm을 사용 공간에 고정된 격자에서 표면이 포함된 cell을 찾아서 구별함 표면을 따라 격자를 탐색하여 표면 particle이 내재된 모든 cell을 찾음 표면이 내재된 각각의 cell에서 빠르게 table을 살펴서 삼각형이 생성됨
Implementation SPH에서 사용하는 smoothing kernel은 제한하는 값 h를 사용 Cell 격자의 크기 h를 사용하는 것은 계산의 복잡성을 감소시킴 Particle i가 존재하는 cell 또는 그 이웃 cell만을 탐색하여 서로 상호작용하는 잠재적인 particle을 찾음
Implementation Particle 격자에 연관하여 저장하는 대신에 각 격자 cell에 particle 객체의 값을 저장 보간 연산을 할 때 필요한 메모리 접근 시 캐쉬 히트 비율을 극적으로 증가 시켜서 속도를 빠르게 함
Results 그림(3)은 2200개의 particle을 사용하여 컵 안의 물을 보여줌
Results Figure 4 : The user interacts with fluid causing it to splash
Results Figure 5 : Pouring water into a glass at 5 frames per second
Results Rotational 한 외력을 주어 유체가 소용돌이 침 그림(a)는 각각의 particle을 보여줌 그림(b)는 자유 표면을 렌더링 하기 위해 point splatting을 사용 그림(c)은 marching cubes algorithm을 사용하여 color field 의 iso-surface를 가시화 그림(a),(b)는 초당 20 frame , 그림(c)는 초당 5 frame
Results 그러나 여전히 대부분의 off-line 유체 simulation 기술 보다 frame rate가 높음 다음 세대의 그래픽 카드를 사용하면 실시간 기술이 더욱 가능해 질 것임
Conclusions and Future Work 우리는 particle기반의 interactive한 유체 simulation을 보여줌 SPH기반의 물리 모델을 사용 안정성과 속도 향상을 위한 특별한 kernel 사용 Free surface을 추적하고 렌더링 하는 기술을 설명 Off-line 계산한 애니메이션과 같이 실사와 같은 결과는 아님
Conclusions and Future Work 그러나 많은 시간이 소요되는 최근의 off-line방법과는 달리 interactive함 물리 기반 모델의 사용은 사실상 불변하지만 실시간으로 유체 free surface을 추적하고 렌더링 하는 기술은 아직 많은 연구주제가 남아 있음 미래에 marching cube-based algorithm의 성능을 높일 수 있는 upsampling기술을 개발할 것임