1 / 48

Particle-Based Fluid Simulation for Interactive Applications

Particle-Based Fluid Simulation for Interactive Applications. Matthias Müller David Charypar Markus Gross. Abstract. 이 논문에서는 SPH 를 기반으로 자유표면을 시뮬레이션 하는 상호작용하는 기법 제안 Navier -Stokes 방정식으로부터 힘의 density 을 계산하는 과정에 표면장력 효과를 더해주어 시뮬레이션 Eulerian 기반 방법보다 좋은 점

Download Presentation

Particle-Based Fluid Simulation for Interactive Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Particle-Based Fluid Simulation for Interactive Applications Matthias Müller David Charypar Markus Gross

  2. Abstract • 이 논문에서는 SPH를 기반으로 자유표면을 시뮬레이션 하는 상호작용하는 기법 제안 • Navier-Stokes 방정식으로부터 힘의 density을 계산하는 과정에 표면장력 효과를 더해주어 시뮬레이션 • Eulerian기반 방법보다 좋은 점 • 이 방법은 질량을 보존하고, 이류텀에서 복잡성을 줄일 수 있음 • 파티클로 유체의 표면을 직접 렌더링 할 수 있음

  3. Abstract • Marching cube 기법과 point splatting기법을 사용하여 자유 표면을 추적하고 가시화 하는 기법 제안 • 이 논문에서의 animation 기법은 interactive 한 시스템에서 사용하기에 충분히 빠름 • 5000개 이상의 particle을 사용하는 사용자 기반의 인터렉션 모델에서 사용가능

  4. Motivation • 유체는 모든 삶의 환경에서 중요함 • 이러한 현상을 simulation하기는 복잡함 • 기존의 유체 simulation • CFD(computational Fluid Dynamics)분야에서 오랜 시간 동안 연구되어 왔음에도 불구하고 여전히 많은 문제가 논의되고 있음 • 이류, 확산, 난류, 표면 장력과 같은 현상들이 복잡하게 상호작용하기 때문 • 유체 현상을 일반적으로 독립되어 simulation 한 후, 나중에 가시화 • 가능한 정확한 결과를 얻어 항공 역학이나 터빈 또는 파이프의 최적화를 수행하기 위함

  5. Motivation • 실시간 유체 simulation • 실시간으로유체를 simulation 하는덜 정확한 기법은 새로운 application의 다양성을 이끌어냄 • 우선 디자인 단계에서 수행되는 실시간 기법을 돕는 유용한 발상에 대해서 이야기함 • 의학 simulation, computer game, 여러 가지 가상 환경에 사용될 수 있는 실시간 simulation 기술을 사용한 application에 관해 다룸

  6. Motivation • Pouring water into a glass at 5 frames per second

  7. Related Work • Computational Fluid Dynamics의 역사는깊음 • Claude Navier(1822)와 George Stokes(1845)는 유체의 운동에 관한 Navier-Stokes 방정식을 정립 • Navier-Stikes방정식 외의 두 가지 보존식이 있음 • 밀도 보존을 내포하는 continuity 방정식 • 에너지를 보존하는 state방정식

  8. Related Work • 이러한 수식들을 수치적으로 컴퓨터를 이용하여 풀이하는 많은 방법들이 CFD분야에서 제안됨 • 지난 20년간 컴퓨터 그래픽스 분야에서 특별한 유체 시뮬레이션 기법이 제안됨 • T.Reeves(1983)흐트러진 object들을 particle system으로 모델링하는 기술을 소개 • Particle기반의 Lagrangian기법과 격자기반의 Eulerian기법이 둘 다 그래픽스 분야에서 사용

  9. RelatedWork • Desburn과 Cani와 Tonnesen은 부드러운 객체이 애니메이션을 위해 particle 사용 • Particle은 표면을 애니메이션 하는데 사용 되고 implicit표면을 제어하고, 용암을 애니메이트하는데 사용 • 최근 Eulerian기반의 유체 시뮬레이션은 물과 부드러운 객체와 녹는 효과 등에서 대중적으로 사용

  10. RelatedWork • Interactive 한 시스템에서 사용 가능할 만한 매우 적은 수의 기술이 있음 • 격자 기반의 Stam의 방법은 실시간 유체 시뮬레이션에서 중요함 • Height field를 사용하는 특수한 경우의 인터렉티브한 애니메이션 기술 • 우리는 임의의 유체 움직임을 애니메이션 하시 위해 SPH를 사용하는 particle기반의 방법을 제안

  11. Our Contribution • 자유표면의 유체를 시뮬레이션 하기 위해 SPH기반의 기법을 사용 • 표면장력을 모델링하는 방법을 제안하고 Navier-Stokes방정식으로부터 점성과 pressure field을 이끌어낼 것임 • 실시간 환경을 제안하기 위해 새로운 Smoothing Kernel을 디자인 함 • 표면 탐색과 표면의 렌더링은인터렉티브한 속도를 내기 어려운 문제이며, 이를 해결하는 가능한 해법을 설명할 것임

  12. Smoothed Particle Hydrodynamics • SPH는 particle system을 위한 보간방법 • SPH를 사용하면 각각의 필드값은particle의 위치에 따라 결정 • 방사형으로 대칭인(radial symmetrical)smoothing kernel을 이용하여, r위치에서 스칼라 필드 값 A는 모든 파티클의 공헌하는 양(contribution)의 weighted sum에 의해 보간해서 구해짐

  13. Smoothed Particle Hydrodynamics • 반지름 h를 주어 제한된 영역에서 사용 • W(r , h) = W(-r , h)이며 normalize된 함수 • 부피(vi) = mi/ρi질량은 constant,밀도는 변함

  14. Smoothed Particle Hydrodynamics • SPH의 gradient 와 Laplacian는 오직 SPH kernel에만 영향을 줌 • SPH의 문제점 • SPH를 이용하는 유체 방정식은 힘의 균형과 운동량의 보존과 같은 물리적 특성을 보장하지 못함

  15. Modeling Fluids with Particles • Eulerian의 방법에서 유체는 velocity field, density field, pressure field 으로 묘사됨 • 질량보존의 법칙과 Navier-Stokes 방정식을 보장함 • 질량 보존의 법칙

  16. Modeling Fluids with Particles • Navier – Stokes 방정식 • grid 기반의 방법을 이용할 때 보다 particle기반을 이용하면 위의 두 방정식이 간단해짐 • 질량 보존의 법칙을 고려하지 않아도 됨 • convective term을 필요로 하지 않음 • substantial derivative of the velocity field

  17. Modeling Fluids with Particles • Particle이 받는 힘은 N-S방정식의 오른쪽 항들의 합 • particle의 가속도를 구할 수 있음

  18. Pressure • SPH에 의해 압력 을 계산할 수 있음 • 하지만 위의 식은 symmetric 하지않음 • 중앙에서 kernel의 gradient값은 0이기 때문에 파티클 i의 압력은 j의 압력만 가지고 계산 • 일반적으로 두 particle의 압력은 같지 않으므로 symmetric 하지 않음

  19. Pressure • 이 논문에서 제안하는 빠르고 안정적인 압력을 구하는 방정식(symmetric함) • P는 아래의 식을 이용하여 구함 • k는 기체상수, 는 기준 밀도(rest density)

  20. Pressure • 위의 방정식에서 ρ는 아래의 방정식으로 구할 수 있음 • Pressure force(fpressure)는 압력의 미분에 의존하기 때문에 와 k같은 offset은 수치적으로 압력힘에 영향을 미치지 않음 • 그러나 offset은 SPH에 의해 부드럽게된 field의 gradient값에 영향을 줌 • 또한 simulation이 수치적으로 더욱 안정됨

  21. Viscosity • SPH의 기법에 의해 점성은 다음과 같은 비대칭 힘으로 계산할 수 있음 • Velocity는 particle과 particle 사이에서 다른 값을 가지므로 viscosity force은 속도의 차이 값에 의존

  22. Viscosity • 본 논문에서 제공하는 자연스럽고 대칭적인, 속도의 차이 값을 이용하여 viscosity force를 구하는 방정식이 있음 • 위의 식은 얼마나 끈적한가를 알 수 있음 • 두 입자의 속도의 차이가 많이 나면 서로 잡아당기는 힘이 강함 • 크기는 같고 방향은 반대인 힘이 상호 작용

  23. Surface Tension • particle(molecules)은 주변에 있는 particle끼리 서로 끌어 당기는 경향이 있음 • fluid 안에서는 당기는 힘이 모든 방향에서 같고 평형상태를 이루었음 • 하지만 표면에서는 평형상태를 이루지 않음 • 표면 장력은 표면의 normal방향으로 작용 • 표면장력은 curvature를 최소화 시키려는 경향이 있음 • curvature가 크면 클수록 힘의 세기도 큼 • 표면장력은 curvature에 비례

  24. Surface Tension • 표면 장력은 장력계수σ에 의존적임 • 유체의 표면은 추가적인 필드를 사용함으로 규명할 수 있음 • color field라고 불리는 이 필드는 particle이 있는 곳은 1, 다른 곳에서는 0을 가짐 • 본 논문에서는 smoothed color field 사용

  25. Surface Tension • color field의 gradient로 normal field를 구함(pointing into the fluid) • normal field의 divergence값은 표면의 곡률 • divergence는 내적되어지는 vector의 방향으로의 변화량( 유체의 안쪽방향으로 들어오는 vector양이 plus값) • curvature는 plus값을 가져야 하므로 다음과 같은 식을 얻을 수 있음

  26. Surface Tension • curvature of the surface • 표면장력(surface traction 끄는 힘)은 장력계수와 curvature에 비례 방향은 normal field 방향

  27. Surface Tension • 표면주위에 있는 particle에 의한 표면장력을 분배시키고 힘의 밀집장(force density field)을 구하기 원함 • 그래서 ‘0’이 아닌 normalize된 스칼라 field |n|을 곱해주어 다음과 같은 식을 얻음

  28. External Forces • 본 논문에서는 외력을 제공함 • 중력, 유저의 상호작용으로 인한 particle사이의 충돌 • 이러한 힘들은 SPH를 사용하지 않고 입자에 적용 • 본 논문에서 입자가 물체와 충돌이 일어났을 경우 반대방향 속도를 주고, 물체 반대방향으로 밀어냄

  29. Smoothing Kernels • SPH의 안전성, 정확성, 속도는 smoothing kernel에 의존 • kernel은 모두 우함수 - 두꺼운 선은 kernel, 얇은 선은 kernel의 gradient, 점선은 kernel의 laplacian wpoly6 wspiky wviscosity

  30. Smoothing Kernels • Kernel은 바운더리에서 미분 값이 ‘0’ 이어서안전성에 도움이 됨 • 본 논문에서 두 경우를 지닌 kernel 사용 • 거리계산에서 제곱근 연산 없이 결정 • 압력이 높은 압력으로 뭉치는 경향이 있음 • particle들이 가까이 있으면 kernel중앙의 gradient값이 ‘0’이므로 척력이 사라짐

  31. Smoothing Kernels • Desburn은 중앙 주위에서 gradient값의 사라짐이 없는 spiky kernel을 사용 • 척력보장, 바운더리에서 1차,2차 미분이 ‘0’

  32. Smoothing Kernels • 점성은 마찰력에 의한 현상이므로 온도에 따른 유체의 운동 에너지의 변화에 따라 감소 • 그러므로 점성은 속도 장에 따라 smoothing됨 • Standard kernel을 사용 할 경우 이러한 성질을 반영하지 못함 • 두 개의 particle이 가까워 지면 두 particle의 상대 속도가 증가되는 음의 값을 가짐

  33. Smoothing Kernels • Particle 수에 기반하는 실시간 어플리케이션에서는 이러한 효과는 안정성의 문제를 가져옴 • Viscosity force 을 구할 때 아래와 같은 kernel사용

  34. Smoothing Kernels • 아래의 추가적인 특성에 따라 Laplacian은 어디서나 양의 값을 가짐 • 이 kernel의 사용은 어떠한 damping force (감쇠력)에 대해서 안전성을 높여줌

  35. Simulation • Leap frog scheme사용 식(8)의 적분을 위해 • 힘을 한 번에 계산 할 수 있는 second order scheme은 우리의 제안 방법에 어울림 • 더 나은 결과를 위하여 adaptivetime step인 Courant-Friedrichs-Lewy condition을 사용

  36. Surface Tracking and Visualization • Color-field 와 color-field의 gradient field인 n = 는 표면을 이루는 particle과 표면의 normal 값 • particlei가 이면 표면particle로 정의함( 은 threshold값) • particle i위치에서의 표면particle 의 normal값은 임

  37. Point Splatting • Particle의 normal값에 대한 정보는 있지만 particle의 연결정보는 가지고 있지 않음 • Point splatting에서는 이러한 타입의 정보를 다룸 • 그러나 이러한 방법들은 10,000개나 100,000개의 point로 이루어진 스캔 데이터를 이용함 • 우리는 오직 표면에 있는 작은 천 단위의 particle을 사용

  38. Point Splatting • 그럼에도 나타난 결과를 보면 그럴듯한 결과가 나타남 • 우리는 최근 유체의 표면을 upsample하는 방법을 사용함 • 표면particle의 color field 정보를 보간 하여 렌더링에 사용되는 추가적인 particle의 위치를 구함

  39. Marching Cubes • free surface를 가시화 시키는 또 다른 방법은 cs의 iso surface를 렌더링 하는 것임 • iso surface를 triangulate하기 위해 marching cube algorithm을 사용 • 공간에고정된 격자에서 표면이 포함된 cell을 찾아서 구별함 • 표면을 따라 격자를 탐색하여 표면 particle이 내재된 모든 cell을 찾음 • 표면이 내재된 각각의 cell에서 빠르게 table을 살펴서 삼각형이 생성됨

  40. Implementation • SPH에서 사용하는 smoothing kernel은 제한하는 값 h를 사용 • Cell 격자의 크기 h를 사용하는 것은 계산의 복잡성을 감소시킴 • Particle i가 존재하는 cell 또는 그 이웃 cell만을 탐색하여 서로 상호작용하는 잠재적인 particle을 찾음

  41. Implementation • Particle 격자에 연관하여 저장하는 대신에 각 격자 cell에 particle 객체의 값을 저장 • 보간연산을 할 때 필요한 메모리 접근 시 캐쉬 히트 비율을 극적으로 증가 시켜서 속도를 빠르게 함

  42. Results • 그림(3)은 2200개의 particle을 사용하여 컵 안의 물을 보여줌

  43. Results • Figure 4 : The user interacts with fluid causing it to splash

  44. Results • Figure 5 : Pouring water into a glass at 5 frames per second

  45. Results • Rotational 한 외력을 주어 유체가 소용돌이 침 • 그림(a)는 각각의 particle을 보여줌 • 그림(b)는 자유 표면을 렌더링 하기 위해 point splatting을 사용 • 그림(c)은 marching cubes algorithm을 사용하여 color field 의iso-surface를 가시화 • 그림(a),(b)는 초당 20 frame , 그림(c)는 초당 5 frame

  46. Results • 그러나 여전히 대부분의 off-line 유체 simulation 기술 보다 frame rate가 높음 • 다음 세대의 그래픽 카드를 사용하면 실시간 기술이 더욱 가능해 질 것임

  47. Conclusions and Future Work • 우리는 particle기반의 interactive한 유체 simulation을 보여줌 • SPH기반의 물리 모델을 사용 • 안정성과 속도 향상을 위한 특별한 kernel 사용 • Free surface을 추적하고 렌더링하는 기술을 설명 • Off-line 계산한 애니메이션과 같이 실사와 같은 결과는 아님

  48. Conclusions and Future Work • 그러나 많은 시간이 소요되는 최근의 off-line방법과는 달리 interactive함 • 물리 기반 모델의 사용은 사실상 불변하지만 실시간으로 유체 free surface을 추적하고 렌더링 하는 기술은 아직 많은 연구주제가 남아 있음 • 미래에 marching cube-based algorithm의 성능을 높일 수 있는 upsampling기술을 개발할 것임

More Related