Abstract
This paper proposes a GPU based water surface animation and rendering technique for interactive applications such as games. On the water surface, a lot of physical phenomenon occurs including reflection and refraction depending on the viewing direction. When we represent the water surface, not only showing them in real time, but also make them adjusted automatically. In our implementation, we are able to capture the reflection and refraction through render-to-texture technique and then modify the texture coordinates for applying separate DU/DV map. Also, we make the amount of ratio between reflection and refraction change automatically based on Fresnel formula. All proposed method are implemented using OpenGL 3D graphics API.
본 연구는 게임을 비롯한 많은 콘텐츠에서 활용하기 위한 GPU기반 사실적 물 애니메이션 기법을 제안한다. 물 표면은 반사 및 굴절과 같은 물리적 현상이 일어나며, 시점에 따른 반사와 굴절의 정도가 자동적으로 조절되어야 한다. 본 논문에서는 GPU 프레임 버퍼를 이용한 렌더투텍스처 방법(RenderToTexture)을 이용하여 반사 및 굴절결과를 텍스처로 저장하며, 이 저장된 데이터에 대한 텍스처 좌표 값을 변형함으로서, 자연스러운 물결의 모습을 표현한다. 또한 표면에 나타나는 굴절 및 반사의 정도가 프레넬(Fresnel) 공식을 통해 시점과 물 표면과의 각도에 따라 자동적으로 계산되도록 한다. 제안된 알고리즘은 윈도우 기반위에서 OpenGL API와 GLSL쉐이더 언어를 통해 구현되었다. 구현 결과, 물결의 자연스러운 움직임이 확인 되었으며, 30 프레임 이상의 속도로 렌더링 되었음이 확인 되었다.