본 논문은 데스크탑 PC 에서만 구현 가능하였던 기존의 유체 시뮬레이션 기술을 모바일 환경으로 확장하는 방법론을 제시한다. 유체 시뮬레이션은 나비어-스토크스 (Navier-Stokes) 방정식의 수치적 해를 구하는 것이며, 기존의 방법론은 수치적 해의 안정성과 [1] 사실성 [2]에 그 초점을 맞추고 있다. 하지만 이는 모바일 기기에서 기대하기 힘든 충분한 연산 자원을 가정한 것이다. 한편, 모바일 환경에서의 물리기반 기술은 현재 강체 시뮬레이션 모듈이 주로 활용되고 있으며 [3], 유체 시뮬레이션은 높이장 (Height field) 기반의 단순한 모델만이 제시되어있다 [4]. 이를 극복하기 위해 본 연구에서는 이러한 한계를 극복한 수정된 비압축유동의 시뮬레이션 기법을 소개하며, 또한 모바일 상에서 유체의 가시화 기술을 제안한다.
본 논문은 데스크탑 PC 에서만 구현 가능하였던 기존의 유체 시뮬레이션 기술을 모바일 환경으로 확장하는 방법론을 제시한다. 유체 시뮬레이션은 나비어-스토크스 (Navier-Stokes) 방정식의 수치적 해를 구하는 것이며, 기존의 방법론은 수치적 해의 안정성과 [1] 사실성 [2]에 그 초점을 맞추고 있다. 하지만 이는 모바일 기기에서 기대하기 힘든 충분한 연산 자원을 가정한 것이다. 한편, 모바일 환경에서의 물리기반 기술은 현재 강체 시뮬레이션 모듈이 주로 활용되고 있으며 [3], 유체 시뮬레이션은 높이장 (Height field) 기반의 단순한 모델만이 제시되어있다 [4]. 이를 극복하기 위해 본 연구에서는 이러한 한계를 극복한 수정된 비압축유동의 시뮬레이션 기법을 소개하며, 또한 모바일 상에서 유체의 가시화 기술을 제안한다.
This paper proposes a method for extending simulating fluid on mobile device, which was only possible on desktop PC. Fluid simulation is done by solving Navier-Stokes equation numerically, and previous research were mainly focused on numerical stability [1], and realism [2]. However, such methods as...
This paper proposes a method for extending simulating fluid on mobile device, which was only possible on desktop PC. Fluid simulation is done by solving Navier-Stokes equation numerically, and previous research were mainly focused on numerical stability [1], and realism [2]. However, such methods assume rich computational resources, which is not available on mobile devices. On the other hand, rigid-body solver is the mostly used physically-based technique [3], and only simple height field-based method is released for fluid simulation [4]. To overcome these problems, we proposes a modified incompressible fluid dynamics solver for the mobile device, and also we propose a technique for visualizing fluids on the mobile device.
This paper proposes a method for extending simulating fluid on mobile device, which was only possible on desktop PC. Fluid simulation is done by solving Navier-Stokes equation numerically, and previous research were mainly focused on numerical stability [1], and realism [2]. However, such methods assume rich computational resources, which is not available on mobile devices. On the other hand, rigid-body solver is the mostly used physically-based technique [3], and only simple height field-based method is released for fluid simulation [4]. To overcome these problems, we proposes a modified incompressible fluid dynamics solver for the mobile device, and also we propose a technique for visualizing fluids on the mobile device.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 저사양의 모바일 기기에서 복잡한 유체 방적식을 해석하는 기법을 제시하였다. 이는 기존의 높이장과 같은 단순한 물리 모델이 아닌, 역학적 요소들을 모두 고려한 stable fluids 모델을 기반으로 구현되었다.
본 연구는 위의 방법들을 개발함으로써 기존에 존재하는 타 모바일용 물리기반 엔진들의 표현 한계를 좀 더 확장할 수 있게 되었다. 비록 본 연구는 기체에 제한된 결과만을 보여주고 있으나, 추후에는 액체, 혹은 불에 대한 연구를 진행할 계획이다.
하지만 stable fluids 모델은 높이장 모델에 비해 연산량이 상대적으로 높으며, 가장 큰 병목은 포아슨 방정식의 해석 과정에 있다. 이를 위해 본 연구에서는 순환법 기반의 선형 시스템 해석기와 대류항을 통한 예측 모델을 결합함으로써 보다 적은 연산으로 사실적인 수치해석을 구현 가능케 하였다. 또한 본 연구에서는 연기의 대류 방정식의 간단한 변형으로 실시간 사용자 인터랙션이 가미된 기체 시뮬레이션을 구현할 수 있었다.
가설 설정
본 논문에서는 유체 현상의 하나로 연기 시뮬레이션을 가정하였다. 연기의 밀도 ρ는 전 계산 영역에 분포해 있으며 이는 부력의 계산과 연기의 가시화에 사용된다.
제안 방법
이를 위해 본 연구에서는 순환법 기반의 선형 시스템 해석기와 대류항을 통한 예측 모델을 결합함으로써 보다 적은 연산으로 사실적인 수치해석을 구현 가능케 하였다. 또한 본 연구에서는 연기의 대류 방정식의 간단한 변형으로 실시간 사용자 인터랙션이 가미된 기체 시뮬레이션을 구현할 수 있었다.
이는 순환법 기반의 선형 시스템 해석기를 통하여 달성되었으며, 대류항으로 예측된 압력으로 보다 빠른 시간에 해를 구해낼 수 있게 되었다. 또한 사용자가 터치 등의 입력으로 유체를 조종할 수 있도록 연기 밀도의 대류항을 추가로 구현하였다. 한편, 이를 가시화하기 위한 방법으로 OpenGL|ES [5] 텍스쳐 기반의 기법을 제시한다.
본 논문에서는 우선 계산량의 문제점을 개선하기 위해, 비압축유동의 해석에 있어서 가장 병목에 해당하는 압력 포아슨 방정식(Pressure Poisson equation, PPE)의 계산을 예측-수정 방법을 통해 개선하였다. 이는 순환법 기반의 선형 시스템 해석기를 통하여 달성되었으며, 대류항으로 예측된 압력으로 보다 빠른 시간에 해를 구해낼 수 있게 되었다.
하지만 저사양의 GPU 에서 이러한 기법을 사용하는 것은 무리가 있다. 본 연구에서는 모바일 기기 사용자의 시점이 고정이라는 가정하에, 2 차원 텍스쳐를 알파 블렌딩을 통한 선형 결합하는 형태로 구현하였다. 이는 OpenGL|ES 상으로도 손쉽게 구현 가능하며 적은 량의 계산으로도 가시화 가능하다.
사용자의 입력에 반응하는 유체 엔진을 위해 본 논문에서는 손가락 입력을 통해 화면을 건드리면 연기를 추가로 불어넣을 수 있는 방식을 가정하고 Apple iPhone 의 멀티 터치 센서를 활용하여 이를 구현하였다. 이를 위해 유체의 유속이 아닌 연기 매질을 표현하는 방정식을 추가로 기술하면 다음과 같다.
이를 해결하기 위해 본 논문에서는 이전 시간격에서 해로 구한 압력값 p 를 대류방정식을 통하여 다음 시간격에서의 p 로 예측하고, 이를 시점으로 포아슨 방정식을 해석하는 방법을 택하였다. 이는 시간에 따른 압력의 변화가 부드러울 것이라는 가정을 하고 있으며, 압력 p 에 대해대류항을 해석하는 과정이 필요하다.
또한 사용자가 터치 등의 입력으로 유체를 조종할 수 있도록 연기 밀도의 대류항을 추가로 구현하였다. 한편, 이를 가시화하기 위한 방법으로 OpenGL|ES [5] 텍스쳐 기반의 기법을 제시한다.
대상 데이터
본 논문의 구현은 Apple 의 iPhone SDK 2.0 [19] 기반으로 이루어졌으며, 실험은 iPhone Simulator 를 통해 수행되었다. 그림 1-3 은 그 결과를 보여주고 있다.
또한, 사용자가 터치를 통해 입력을 가하게 되면 식 (6)를 통해 입력 받은 위치 주의에 연기의 밀도가 높아짐을 볼 수 있다. 시뮬레이션은 1 초당 30 프레임을 진행하였고, 수치 해석을 위한 격자 해상도는 642이다.
이론/모형
앞서 언급한 식들을 수치적으로 해석하기 위해서 본 논문에서는 격자 기반의 수치해석법을 사용하였다. 식(1)의 대류항을 수치적으로 해석하기 위해서는 [1]에서 소개된 세미-라그랑지안 기법이 사용되었다. 이 기법은 식(1)을 시간에 대해 적분할 때 기존의 유한차분법이 가지는 조건적 안정성을 해결한 방법으로, 이론적으로는 시간격과 상관없이 무조건적 안정성을 보장한다 (물론 수치적 오차는 시간격이 커질수록 늘어난다).
앞서 언급한 식들을 수치적으로 해석하기 위해서 본 논문에서는 격자 기반의 수치해석법을 사용하였다. 식(1)의 대류항을 수치적으로 해석하기 위해서는 [1]에서 소개된 세미-라그랑지안 기법이 사용되었다.
그림 1 – 유체 방정식의 해석을 통한 연기시뮬레이션 모습. 연기의 밀도와 유속은 본문에서 설명한 semi-Lagrangian 기법을 통해 해석되고 있다. 또한 질량 보존식이 만족되어 소용돌이와 같은 현상들이 재현되고 있다.
이는 시간에 따른 압력의 변화가 부드러울 것이라는 가정을 하고 있으며, 압력 p 에 대해대류항을 해석하는 과정이 필요하다. 예측된 압력 p 를 사용하여 현재 시간격에서의 압력을 계산하기 위해, 본 논문에서는 가우스-사이델(Gauss-Seidel) 방법을 사용하였다 [18]. 이는 자코비법에 비해 병렬화는 용이하지 않으나, 해로 수렵하는 속도가 더 빠르며, 따라서 같은 횟수의 순환을 거친 뒤에는 자코비법에 비해 수치적 오차가 훨씬 적다 (동일한 오차범위에 수렴하기 위해 자코비법은 가우스-사이델법에 비해, 3 배 이상의 순한이 필요하다).
1999 년에 Stam [1]은 Stable Fluids 로 알려진 안정적인 유체 시뮬레이터를 소개했다. 이 시뮬레이터에서는 큰 시뮬레이션 시간 간격을 사용해도 안정적으로 동작할 수 있도록 대류항을 세미라그랑지안(semi-Lagrangian)방법을 통해 해석한다. 그 이후, 이 방법을 기초로 빠르게 동작하는 유체 시뮬레이터를 개발하기 위해 활발히 연구가 진행되어 왔다.
본 논문에서는 저사양의 모바일 기기에서 복잡한 유체 방적식을 해석하는 기법을 제시하였다. 이는 기존의 높이장과 같은 단순한 물리 모델이 아닌, 역학적 요소들을 모두 고려한 stable fluids 모델을 기반으로 구현되었다. 하지만 stable fluids 모델은 높이장 모델에 비해 연산량이 상대적으로 높으며, 가장 큰 병목은 포아슨 방정식의 해석 과정에 있다.
이를 극복하기 위하여 [17]에서는 순환(iterative)법 중 하나인 자코비(Jacobi)법을 사용하였다. 자코비법은 PCG 법에 비해 수렴 속도 자체는 느리나, 연산이 간단하고 병렬화가 용이하며, 연기와 같이 질량보존의 오차가 크게 눈에 띄지 않는 경우에는 순환의 횟수를 제한하여 속도를 크게 향상시킬 수 있다 [18].
최종적으로 계산된 유체를 실시간으로 가시화 하기 위해, 기존의 연구들은 ray-marching 기법을 사용하였다 [17]. 하지만 저사양의 GPU 에서 이러한 기법을 사용하는 것은 무리가 있다.
성능/효과
가우스-사이델법 대신 PCG 법을 사용할 수도 있으나, PCG 법은 rougher 계열의 순환법으로서 smoother 계열의 가우스-사이델법과 같이 이전 시간격의 압력으로 현재를 예측하는 것이 보다 빠른 수렴성을 보장하지 않는다. 본 논문에서 구현한 예측 기반의 가우스-사이델법은 자코비법에 비해 동일한 수렴 오차에서 4 배 가량의 속도 향상을 얻을 수 있었으며, 일반적인 가우스-사이델법에 비해 20%가량의 연산량을 줄일 수 있었다 (순환 횟수 기준). 본 방법을 적용한 예는 그림 1 에 나타나있다.
후속연구
비록 본 연구는 기체에 제한된 결과만을 보여주고 있으나, 추후에는 액체, 혹은 불에 대한 연구를 진행할 계획이다. 또한 가속도 센서와 같은 모바일 기기의 다양한 사용자 인터페이스를 적극 활용하여 유체 역학에 적용하는 것 또한 추후 연구 과제이다.
본 연구는 위의 방법들을 개발함으로써 기존에 존재하는 타 모바일용 물리기반 엔진들의 표현 한계를 좀 더 확장할 수 있게 되었다. 비록 본 연구는 기체에 제한된 결과만을 보여주고 있으나, 추후에는 액체, 혹은 불에 대한 연구를 진행할 계획이다. 또한 가속도 센서와 같은 모바일 기기의 다양한 사용자 인터페이스를 적극 활용하여 유체 역학에 적용하는 것 또한 추후 연구 과제이다.
질의응답
핵심어
질문
논문에서 추출한 답변
자코비법이 PCG법과 비교하여 갖는 특징은?
이를 극복하기 위하여 [17]에서는 순환(iterative)법 중 하나인 자코비(Jacobi)법을 사용하였다. 자코비법은 PCG 법에 비해 수렴 속도 자체는 느리나, 연산이 간단하고 병렬화가 용이하며, 연기와 같이 질량보존의 오차가 크게 눈에 띄지 않는 경우에는 순환의 횟수를 제한하여 속도를 크게 향상시킬 수 있다 [18]. 또한 자코비법은 smoother 계열의 순환법으로서, 연산을 도중에 멈추더라도 시각적으로 실제 구하고자 하는 해와 유사하게 보인다 (물론 이는 수치적 오차와는 거리가 있다).
본 논문에서 제시한 저사양의 모바일 기기에서 복잡한 유체 방적식을 해석하는 기법은 무엇을 구현 가능하게 했나?
하지만 stable fluids 모델은 높이장 모델에 비해 연산량이 상대적으로 높으며, 가장 큰 병목은 포아슨 방정식의 해석 과정에 있다. 이를 위해 본 연구에서는 순환법 기반의 선형 시스템 해석기와 대류항을 통한 예측 모델을 결합함으로써 보다 적은 연산으로 사실적인 수치해석을 구현 가능케 하였다. 또한 본 연구에서는 연기의 대류 방정식의 간단한 변형으로 실시간 사용자 인터랙션이 가미된 기체 시뮬레이션을 구현할 수 있었다.
PCG 법의 장점은?
선형 시스템의 해를 구하는 방법은 매우 다양하나 일반적으로 데스크탑 기반의 유체 엔진에서는 Preconditioned Conjugate Gradient (PCG)법을 주로 사용한다. PCG 법은 정확한 해로 수렴하는 시간이 다른 선형 시스템 해석 기법들에 비해 짧다는 장점이 있다. 구체적인 알고리즘은 Saad [18]에 기술되어있다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.