View : 1177 Download: 0

CUDA를 이용한 병렬형 충돌검사 및 동역학 시뮬레이션 연구

Title
CUDA를 이용한 병렬형 충돌검사 및 동역학 시뮬레이션 연구
Authors
이연희
Issue Date
2009
Department/Major
대학원 컴퓨터정보통신공학과
Publisher
이화여자대학교 대학원
Degree
Master
Advisors
김영준
Abstract
This dissertation addresses how articulated body dynamics and primitive-level collision detection can be implemented in a massively parallel fashion using NVIDIA’s CUDA. Physics-based simulation can realize the real-world phenomena on a computer. The technology has been applied to many fields in computer graphics including computer animations, games, virtual reality, movie special effect, and so on. The two key components of physics-based simulation include collision response based on dynamics simulation and collision detection between virtual objects. The dynamics simulation, especially forward dynamics simulation, computes the positions, velocities, and accelerations of objects when external forces are applied to them. Articulated bodies are a prevalent form in graphical and robot dynamics simulation since they can represent human and animal characters, industrial robots, molecule models, etc. An articulated body consists of several rigid bodies linked by joints. However, it is quite complex and expensive to solve the underlying motion equation for an articulated body. In order to tackle this problem, parallel or simplification algorithms for articulated body dynamics have been proposed. On the other hand, collision detection between virtual objects can prevent objects from penetrating each other. Collision detection should also precede collision response, and this way dynamics simulation can be made realistic. Triangle-level intersection tests are a necessary step in any collision detection methods and often become a computational bottleneck in a collision detection problem. We have implemented parallel articulated body dynamics simulation based on Roy Featherstone’s Divide-and-Conquer algorithm [9, 10] using CUDA. This algorithm is known to have an O(log(n)) time complexity when the number of available parallel processors is n. We have empirically shown in the dissertation that this is the case using CUDA. We also have implemented all pairwise triangle-level intersection tests in a massively parallel fashion using CUDA and significantly improve the run-time performance by more than a factor of 11.;최근 그래픽스 하드웨어를 범용 연산에 활용하는 GPGPU (General Purpose computing on Graphics Processing Units) 분야가 차세대 고속 컴퓨터 연산 기술로 각광을 받게 됨에 따라 그래픽스 하드웨어 제조 회사들이 GPGPU 프로그래밍에 적합한 그래픽스 하드웨어 및 프로그래밍 도구를 개발하게 되었다. 그 중 대표적인 것이 NVIDIA사의 CUDA이다. 이 하드웨어와 도구들은 범용 연산에 적합하지 않은 쉐이딩 언어를 이용해야 한다는 기존 GPU 프로그래밍의 불편함과 어려움을 해소함으로써 고속 연산을 필요로 하는 다양한 분야에서 GPGPU 연구를 활발히 진행할 수 있는 초석을 마련하였다. 실 세계의 물리적 현상들을 컴퓨터 상에 재현하는 기술인 물리 기반 시뮬레이션 기술은 컴퓨터 애니메이션, 게임, 가상 현실, 영상 특수 효과 등 다양한 분야에 활용된다. 이 물리 기반 시뮬레이션에서 쓰이는 중요한 요소 두 가지는 동역학 시뮬레이션과 가상 객체 간 충돌 검사이다. 동역학 시뮬레이션 중 특히 순동역학 시뮬레이션은 가상 현실에서 객체에 외력이 가해졌을 때 객체의 위치, 속도, 가속도를 구하는 기술이다. 흔히 컴퓨터 그래픽스와 같은 응용분야에서 사용되는 동역학 시뮬레이션에서는 움직임을 표현할 대상 객체로 관절체가 주로 이용된다. 관절체는 여러 개의 강체를 관절로 연결하여 나타내는 모델로서, 인간 또는 동물 형태의 캐릭터 및 분자 구조 등을 나타내거나 로봇 시뮬레이션을 구현하기에 적합한 모델이다. 하지만 이 모델은 여러 개의 강체가 관절로 이어져 하나의 객체를 이루기 때문에 운동 방정식을 계산하기가 매우 복잡하다. 또한 관절체를 이루는 강체의 개수가 많아질수록 계산은 더욱 복잡해진다. 이를 해결하기 위해 동역학 시뮬레이션 연산 단계를 병렬화 하거나 단순화 시켜 계산하는 방법들이 제시된 바 있다. 또한, 가상 객체 간 충돌 검사는 가상의 객체들이 서로 충돌하는 것을 감지하여 객체들이 서로 관통하는 것을 방지하고, 충돌에 의해 발생하는 반발력을 생성함으로써 동역학 시뮬레이션에서 객체들의 움직임에 더욱 사실감을 부여해주는 방법이다. 특히 충돌 검사를 위한 여러 기법과 단계 중에서도 객체들을 구성하는 삼각형 메쉬 충돌 검사는 충돌 검사의 필수적인 단계이자 실시간 충돌 검사 시 주요 병목현상을 일으키는 부분이다. 본 논문에서는 CUDA를 이용해 관절체 동역학 시뮬레이션과 가상 객체들 간 충돌 검사 알고리즘을 각각 병렬적으로 구현하였다. 특히 본 논문에서 구현한 병렬 관절체 동역학 시뮬레이션은 Roy Featherstone의 Divide-and-Conquer 알고리즘 [9, 10]을 기반으로 하였다. 특히 이 알고리즘은 병렬 프로세서의 개수가 n개일 때 이론적으로 O(log(n))의 시간 복잡도를 갖는다고 알려져 있고, 본 논문에서는 이를 CUDA를 이용해 실험적으로 증명해 보았다. 또한 본 논문에서 구현된 가상 객체들 간 병렬 충돌 검사 알고리즘은 삼각형 메쉬 충돌 검사를 모든 쌍의 삼각형 메쉬에 대해 병렬적으로 수행함으로써 전체적인 충돌 검사 알고리즘의 성능을 약 11배까지 향상시킬 수 있었다.
Fulltext
Show the fulltext
Appears in Collections:
일반대학원 > 컴퓨터정보통신공학과 > Theses_Master
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

BROWSE