초록
오늘날 3D 다이내믹 시뮬레이션은 많은 산업들과 밀접한 관계를 가지고 있다. 과거에는 자동차 충돌, 건축물 분야에서 주로 사용되었으나 최근에는 영화나 게임 분야에도 물리 시뮬레이션이 중요한 역할을 하고 있다. 일반적으로 3D 물체를 사실적으로 표현하기 위해서는 많은 수학적 연산이 필요하기 때문에 기존의 CPU 기반의 응용 프로그램들은 이러한 많은 연산량을 실시간으로 처리하는데 무리가 있다. 최근 그래픽 하드웨어의 발전과 아키텍쳐의 개선으로 GPU는 기존의 렌더링 연산뿐만 아니라 범용 목적의 연산 기능을 제공하고 있고 이러한 GPU를 활용하는 연구가 활발히 진행되고 있다. 본 논문에서는 GPU를 이용한 천 시뮬레이션 수행시 수행 성능을 최적화하기 위하여, GPU 셰이더의 실행 환경 변화에 따른 천 시뮬레이션 알고리즘의 수행 성능의 변화를 분석하였다. GPU를 이용한 천 시뮬레이션은 GLSL 4.3의 Compute shader를 사용하여 스프링 중심 알고리즘과 노드 중심 알고리즘을 PC기반으로 구현하였고, GLSL Compute shader의 다양한 워크 그룹 (Work Group) 크기와 차원 분배에 따른 연산 속도의 변화를 비교 분석하였다. 실험은 5,000 프레임까지 10회 반복 수행하여 FPS(Frame Per Second)의 평균을 구하여 진행하였다. 실행결과, 노드 중심의 알고리즘이 오히려 스프링 중심의 알고리즘 보다 빠른 수행속도를 보여 주었다.
In these days, 3D dynamic simulation is closely related to many industries. In the past, physically-based 3D simulation was used mainly in the car crash or construction related fields, but it also plays an important role in movies or games today. Many mathematical computations are needed to represent the 3D object realistically, but it is difficult to process a large amount of calculations for simulation of application based on CPU in real-time. Recently, with the advanced graphic hardware and improved architecture, GPU can be utilized for the general purposes of computation function as well as graphic computation. Many approaches using GPU have been applied for various research fields. In this paper, we analyze the performance variation of two cloth simulation algorithms based on GPU according to the change of execution properties of GPU shaders in oder to optimize the performance of GPU-based cloth simulation. Cloth simulation is implemented by the spring centric algorithm and node centric algorithm with GPU parallel computing using compute shader of GLSL 4.3. We compare the performance of between these algorithms according to the change of the size and dimension of work group. The experiment is repeated to 10 times during 5,000 frames for each test and experimental results are provided by averaging of FPS. The experimental result shows that the node centric algorithm is executed in higher speed than the spring centric algorithm.