DOI QR코드

DOI QR Code

Improved Calculation of the Advection Term in the Semi-Lagrange Method for Realistic Smoke Simulation

사실적 연기 시뮬레이션을 위한 Semi-Lagrange 방법에서의 이류항 계산방법 개선

  • 박수완 (경북대학교 컴퓨터공학과) ;
  • 장문희 (경북대학교 컴퓨터공학과) ;
  • 김은주 (동명정보대학교 정보통신공학과) ;
  • 유관우 (경북대학교 컴퓨터공학과)
  • Published : 2007.08.31

Abstract

In the field of computer graphics, Navier-Stokes equations would be used for realistic simulations of smokes and currents. However, implementations derived from these equations are hard to achieve for real-time simulations, mainly due to its massive and complex calculations. Thus, there have been various attempts to approximate these equations for real-time simulation of smokes and others. When the advection terms of the equations are approximated by the Semi-Lagrange methods, the fluid density can be rapidly reduced and small-scale vorticity phenomena are easy to be missed, mainly due to the numerical losses over time. In this paper, we propose an improved numerical method to approximately calculate the advection terms, and thus eliminate these problems. To calculate the advection terms, our method starts to set critical regions around the target grid points. Then, among the grid points in a specific critical region, we search for a grid point which will be advected to the target grid point, and use the velocity of this grid point as its advection vector. This method would reduce the numerical losses in the calculation of densities and vorticity phenomena, and finally can implement more realistic smoke simulations. We also improve the overall efficiency of vector calculations and related operations through GPU-based implementation techniques, and thus finally achieve the real-time simulation.

자연 현상에서 나타나는 연기나 난류의 움직임을 사실적으로 시뮬레이션하기 위해서는 Navier-Stokes 방정식을 사용할 수 있다. 이 방정식을 이용한 구현은 방대한 연산량과 계산의 복잡성으로 인하여 실시간 시뮬레이션이 어렵다. 실시간 처리를 위해서는 Navier-Stokes 방정식의 관사 형태를 사용하는 것이 일반적이다. 유체 시뮬레이션의 이류(advect) 과정을 근사화하기 위해, Semi-Lagrangian 방법을 이용하면, 연기 시뮬레이션의 경우는 시간이 지남에 따라 밀도가 현저히 줄어들고, 소규모의 소용돌이(small-scale vorticity) 현상 등을 표현하기가 어렵다. 본 논문에서는 이 문제를 해결하기 위해 이류항(advection term)을 계산하는 새로운 수치해석 방법을 제안한다. 이 방법에서는 이류항의 값을 구할 때, 격자(grid) 중심의 현재 속도에 비례하는 임계영역을 격자 주변에 선정하고, 임계영역 내에 있는 격자들 중에서 현재 격자의 위치로 이류하는 속도를 가진 격자를 추적하여, 그 격자에서의 속도를 현재 격자의 이류속도 벡터로 사용한다. 이는 밀도와 소용돌이 현상의 수치적 소실을 줄여서, 사실성을 높이면서도, 실시간 처리가 가능하다. 본 논문에서는 GPU 구현을 통해 벡터 연산 등의 효율성을 높임으로써, 제안하는 방법의 실시간이 가능함을 보인다.

Keywords

References

  1. N. Foster and D. Metaxas, 'Modeling the Motion of Hot, Turbulent Gas,' ACM SIGGRAPH, pp.181-188, 1997 https://doi.org/10.1145/258734.258838
  2. J. Stam, 'Stable fluids', ACM SIGGRAPH 1999, pp.121-128, 1999 https://doi.org/10.1145/311535.311548
  3. N. Foster and R. Fedkiw, 'Practical Animation of Liquid', ACM SIGGRAPH, pp.23-30, 2001 https://doi.org/10.1145/383259.383261
  4. A. Treuille, A. McNamara, Z. Popovic, and J. Stam, 'Keyframe Control of Smoke Simulations', ACM SIGGRAPH, pp.716-723, 2003 https://doi.org/10.1145/882262.882337
  5. M. Carlson, P. J. Mucha and G. Turk 'Rigid Fluid: Animating the Interplay Between Rigid Bodies and Fluid', ACM SIGGRAPH, pp.377-384, 2004 https://doi.org/10.1145/1186562.1015733
  6. R. Fedkiw, J. Stam, and H. W. Jensen, 'Visual simulation of smoke', ACM SIGGRAPH, pp.15-22, 2001 https://doi.org/10.1145/383259.383260
  7. J. Hong, J. Kim, 'Animating smoke with dynamic balance', Computer Animation and Virtual Worlds 16, pp.405-414, 2005 https://doi.org/10.1002/cav.87
  8. R. Fernando(Ed.), GPU Gems, Addison Wesley, 2004
  9. J. Steinhoff and D. Underhill, 'Modification of the Euler equations for vorticity confinement', Application to the computation of interacting vortex rings, Physics of Fluids 6(8), pp.2738-2744, 1994 https://doi.org/10.1063/1.868164
  10. GPGPU : http//www.GPGPU.org
  11. M. Pharr(Ed), GPUGems 2, Addison Wesley, 2005