500 likes | 822 Views
Particle-Based Fluid Simulation for Interactive Applications. Matthias Müller David Charypar Markus Gross. Abstract. 이 논문에서는 SPH 를 기반으로 자유표면을 시뮬레이션 하는 상호작용하는 기법 제안 Navier -Stokes 방정식으로부터 힘의 density 을 계산하는 과정에 표면장력 효과를 더해주어 시뮬레이션 Eulerian 기반 방법보다 좋은 점
E N D
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하기는 복잡함 • 기존의 유체 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 • 반지름 h를 주어 제한된 영역에서 사용 • 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함) • P는 아래의 식을 이용하여 구함 • 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, 얇은 선은 kernel의 gradient, 점선은 kernel의 laplacian wpoly6 wspiky wviscosity
Smoothing Kernels • Kernel은 바운더리에서 미분 값이 ‘0’ 이어서안전성에 도움이 됨 • 본 논문에서 두 경우를 지닌 kernel 사용 • 거리계산에서 제곱근 연산 없이 결정 • 압력이 높은 압력으로 뭉치는 경향이 있음 • particle들이 가까이 있으면 kernel중앙의 gradient값이 ‘0’이므로 척력이 사라짐
Smoothing Kernels • Desburn은 중앙 주위에서 gradient값의 사라짐이 없는 spiky kernel을 사용 • 척력보장, 바운더리에서 1차,2차 미분이 ‘0’
Smoothing Kernels • 점성은 마찰력에 의한 현상이므로 온도에 따른 유체의 운동 에너지의 변화에 따라 감소 • 그러므로 점성은 속도 장에 따라 smoothing됨 • Standard kernel을 사용 할 경우 이러한 성질을 반영하지 못함 • 두 개의 particle이 가까워 지면 두 particle의 상대 속도가 증가되는 음의 값을 가짐
Smoothing Kernels • Particle 수에 기반하는 실시간 어플리케이션에서는 이러한 효과는 안정성의 문제를 가져옴 • Viscosity force 을 구할 때 아래와 같은 kernel사용
Smoothing Kernels • 아래의 추가적인 특성에 따라 Laplacian은 어디서나 양의 값을 가짐 • 이 kernel의 사용은 어떠한 damping force (감쇠력)에 대해서 안전성을 높여줌
Simulation • Leap frog scheme사용 식(8)의 적분을 위해 • 힘을 한 번에 계산 할 수 있는 second order scheme은 우리의 제안 방법에 어울림 • 더 나은 결과를 위하여 adaptivetime step인 Courant-Friedrichs-Lewy condition을 사용
Surface Tracking and Visualization • Color-field 와 color-field의 gradient field인 n = 는 표면을 이루는 particle과 표면의 normal 값 • particlei가 이면 표면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기술을 개발할 것임