몰입감은 사용자가 게임이나 VR(Virtual Reality) 콘텐츠를 즐기는 데 있어 만족감을 결정짓는 요인 중 하나이다. 현재까지 사용자의 몰입감을 증가시키기 위한 사실적이고 역동적인 시뮬레이션의 구현 방법을 제시한 사례가 많이 존재한다. 연기 또한 시뮬레이션이 가능한 요소 중 하나이고 연기와 사용자 사이의 상호작용 또한 구현이 가능하다. 본 연구에서는 GPU 프로그래밍을 이용하여 dens_step과 vel_step이라는 핵심 알고리즘으로 구성된 그리드 기반의 연기 시뮬레이션 솔버에 오브젝트와 그리드 간의 충돌이 일어난 셀을 구분하여 해당 셀을 넘겨주어 연기의 흐름을 바꾸는 방식으로 연기와 오브젝트 간의 상호작용을 구현했다. 이에 따라 오브젝트가 그리드를 통과하는 속도와 방향에 따라 연기의 흐름이 변화하는 모습을 확인할 수 있었고 오브젝트가 그리드 내부에 배치되어 있을 때 연기가 오브젝트를 통과하지 않고 오브젝트의 모양에 따라 자연스럽게 피해서 흐르는 모습을 확인할 수 있었다. 향후 다양한 최적화 방안을 모색하여 교육, 훈련, 게임 그리고 VR 콘텐츠와 같이 여러 분야에 활용이 가능할 것으로 기대된다.
Immersion is one of the factors that determine satisfaction when users enjoy games or virtual reality (VR) content. To date, there have been many examples of realistic and dynamic simulation implementation methods to increase user immersion. Acting is also one of the elements that can be simulated, and interactions between acting and users can also be implemented. In this study, GPU programming was used to implement the interaction between smoke and an object by dividing the cell in which the object and the grid collided and handing the cell over to a grid-based smoke simulation solver composed of the core algorithms dens_step and vel_step to change the flow of smoke. As a result, it was possible to see how the flow of smoke changed with the speed and direction of the object passing through the grid, and when the object was placed inside the grid, it was possible to see how the smoke naturally avoided and flowed according to the shape of the object without passing through it. If various optimization measures can be successfully applied to applications in the future, it is expected to find application in various fields such as education, training, games, and VR content.