컴퓨터 그래픽에서 물리 기반 시뮬레이션은 높은 해상도와 풍부한 세부 정보로 시각적인 결과를 도출하는 것을 목표로 한다. 특히 고해상도 모델의 경우 시간이 지남에 따라 시스템의 동적 움직임을 모델링하고 계산하는 데 상당한 컴퓨팅 능력이 필요하기 때문에 어려움이 있다. 연질체, 유체 및 천을 포함한 변형 가능한 물체는 복잡한 물리적 특성으로 인해 시뮬레이션 동작에 많은 어려움을 겪고 있다. 이러한 물체는 비선형 및 동적 특성을 갖는 경향이 있으며, 이로 인해 기존 기술로 정확한 모델링이 어렵고 상당한 양의 컴퓨팅 자원이 필요하다.
본 연구에서는 sparse linear system을 해결하기 위해 새로운 접근법인 병렬 Conjugate gradient 알고리즘을 소개한다. 또한 병렬 알고리즘을 기반으로 안정적이고 효과적인 옷감 시뮬레이션과 변형 가능한 물체 시뮬레이션을 개발하는 것을 목표로 한다. 시뮬레이션의 성능을 높이기 위해 범용 그래픽 처리 장치(GPGPU: General-Purpose Graphics Processing Unit)를 사용한다. 제안된 알고리즘은 그래픽 처리 장치(GPU: Graphics Processing Unit)의 표준 렌더링 파이프라인 외부에서 실행되는 Unity3D와 OpenGL의 컴퓨터 셰이더에 설계되어 대규모 병렬 프로세스를 하여적용하여 시뮬레이션의 성능을 높였다.
질량 스프링 모델(MSM: Mass-Spring Model)과 위치 기반 동적(PBD: Position-based Dynamic)의 방법이 제안된 옷감 시뮬레이션과 변형 물체 시뮬레이션의 주요 알고리즘으로 사용되었다. 정확도와 성능 사이의 상충 문제를 해결하기 위해 옷감 시뮬레이션을 위한 병렬 제한 적용, 상황에 따른 제한 활성화 및 비활성화(ACAD: Adaptive Constraint Activation & Deactivation) 및 병렬 PBD를 제안한다 하였다.. 마찬가지로 일반 변형 물체 시뮬레이션을 위해 MSM과 PBD를 기반으로 한 부피 보존 제약제한의 병렬 알고리즘을 제안한다.
실험 결과, 본 연구에서 제안한 병렬 희소 선형 해결 알고리즘은 8개의 희소 행렬에 대해 테스트했을 때 GPU 기반 선형 해결 시스템에서 CPU 기반 선형 해결 시스템보다 훨씬 빠른 결과를 나타냈다. GPU 기반 시스템에서 기록된 평균 컴퓨팅 시간은 0.64ms인 반면 CPU 기반 시스템에서 요구된 평균 컴퓨팅 시간은 15.37ms이다. 옷감 시뮬레이션의 병렬 기법은 589K의 정점들로 구성된 옷감을 처리할 수 있으며, Unity3D에서 49.47fps, OpenGL 플랫폼에서 171.3fps를 얻을 수 있었다. 변형 물체 시뮬레이션을 위해 제안된 부피 제한 방법(VPC: Volume~)방법은 29.8fps로 82K 정점을 처리할 수 있다. 반면에 OpenGL에서의 구현은 평균 101fps로 최대 655K 정점을 실시간으로 실행할 수 있다. 병렬 PBD 기법은 17K 정점과 50회 반복으로 제약제한을 해결할 수 있다. Unity3D에서는 평균 74.24fps의 속도이고 OpenGL에서는 167.5fps로 OpenGL에서 더 높은 것을 확인할 수 있다.