Abstract
Among many other CG generated natural scenes, the representation of ocean surfaces is one of the most complicated and time-consuming problem because of its large extent and complex surface movement. We present a hybrid method to represent and animate unbound deep-water ocean surfaces by utilizing graphics processor as both simulation and rendering core. Our technique is mainly based on spectral approaches that generate a high-detailed height field using Fourier transform on a 2D regular grid. Additionally, we incorporate Gerstner model and generate low-detailed height field on a 2D projected grid in order to represent large waves and main structure of ocean surface. There is no interruption between CPU and GPU, and no need to transfer simulation results from the system memory to graphics hardware because the entire simulation and rending processes are done on graphics processor. As a result we can synthesize and render realistic water surfaces in real-time. Proposed techniques are readily adoptable to real-time applications such as computer games that have heavy work load on CPU but still demand plausible natural scenes.
컴퓨터 그래픽스로 재현되는 많은 자연현상 중의 하나인 바다는 주변 환경에 의해 계속해서 움직이며 복잡한 형태를 나타낼 뿐만 아니라 그 규모가 거대하기 때문에 만족스러운 영상을 얻기 위해서는 많은 계산시간을 필요로 한다. 본 논문에서는 GPU를 연산유닛으로 활용하여 무한히 넓은 바다표면의 움직임을 실시간으로 빠르게 시뮬레이션하고 사실적으로 렌더링하기 위한 방법을 제안한다. 제안하는 방법은 Gerstner 모델에 의해 2차원 투사 격자에서 생성된 저해상도의 메쉬로 바다의 전체적인 구조와 큰 물결을 표현하고, 스펙트럼 모델에 의해 2차원 균일격자에서 생성된 높이 맵과 법선 맵을 사용하여 작은 물결과 자세한 수면의 모습을 표현한다. 전체 과정이 GPU에 의해 처리되기 때문에 CPU자원을 다른 연산에 양보할 수 있을 뿐만 아니라 시스템 메모리와 그래픽스 하드웨어 사이에 기하정보(geometry data)의 이동이 없어 보다 빠른 렌더링이 가능하다. 제안하는 방법은 컴퓨터 게임과 같이 계산량이 많고 빠른 처리가 요구되는 실시간 애플리케이션에 활용 가능성이 크다.