Mürner Roger - Accelerated Collision Detection Using GPU

Commentaren

Transcriptie

Mürner Roger - Accelerated Collision Detection Using GPU
Informatik
BI BE BU VA
Accelerated Collision Detection Using GPU
Virtual Reality and Computer Haptics / Prof. Claude Fuhrer
Experte: Pierre-Yves Voirol
Kollisionserkennung zwischen dreidimensionalen Objekten ist eine wichtige und grundlegende Aufgabe beim virtuellen Prototyping, beim haptischen Rendering, bei physikalisch basierten Simulationen, bei
Games und in diversen anderen Gebieten. Wir befassten uns im Rahmen der Bachelor Thesis mit der
­Frage, ob es möglich ist die Kollisionserkennung mittels Grafikprozessors (GPU) zu beschleunigen.
Dazu wurde eine Anwendung entwickelt, die es ermöglicht CPU- sowie GPU-basierte Algorithmen zu
testen und zu vergleichen.
Ziel der Arbeit
Die Aufgabenstellung dieser Arbeit war es, in einem ersten Teil die
üblichen und gängigen Methoden
zur Kollisionserkennung zu untersuchen und dabei ihre Vorteile
beziehungsweise Einschränkungen zu beschreiben. Im zweiten
Teil der Arbeit musste nach einer
Kollisionserkennung zwischen zwei
Objekten in der Narrow Phase
oder auch mehreren Möglichkeiten gesucht werden, wie die Kollisionserkennung mittels programmierbarer Grafik-Hardware (GPU)
ausgelagert werden kann. Diese
zwei Teile sollten nicht nur theoretisch behandelt werden, sondern
sie mussten auch in die Praxis
umgesetzt werden. Am Schluss
sollten die erzielten Ergebnisse
ausgewertet werden.
Umsetzung
Das Resultat der Umsetzung ist
eine ganzheitliche C++ Anwendung namens «CDWG» mit der
Kollisionen simuliert werden. Dies
geschieht in einer ersten Phase
(Broad Phase) mit Bounding Volumes die ein Objekt umhüllen und
als Approximation einer möglichen Kollision dienen. Ist der Kollisionstest zwischen den Bounding Volumes positiv, so können
die komplexen Objekte in einer
weiteren Phase (Narrow Phase)
gegenseitig auf eine mögliche
Kollision geprüft werden. Dabei
kann die Narrow Phase via CPU
oder GPU durchgeführt werden.
CDWG kann bei den Kollisionstests die Zeiten messen und so
Informationen über die Effizienz
der Algorithmen geben.
Details zur «Broad Phase»
CDWG unterstützt drei Bounding
Volumes, Axis Aligned Bounding
Box (AABB), Bounding Sphere
(BS) sowie Discrete Oriented Polytope (8-DOP), welche sich alle
gegenseitig auf Kollisionen prüfen
können.
Details zur «Narrow Phase»
Der CPU-basierte Algorithmus
vergleicht alle Polygone (Dreiecke)
von Objekt A mit denen von Objekt B und berechnet ein mögliche Schnittlinie. Der GPU-basierte Algorithmus arbeitet nach dem
Prinzip von GPGPU (General Purpose Computation on GPU) und
wurde anhand des Fachbeitrages
«Streaming Collision Detection
Using Programmable Graphics
Hardware»1
umgesetzt. Dabei
werden die benötigten Daten in
Strahlen und Dreiecke umgewandelt und auf die GPU transferiert,
wo dann die Kollisionserkennung
stattfindet.
Experimente
Ausführliche Experimente auf drei
verschiedenen Systemen haben
gezeigt, dass die Auslagerung der
Narrow Phase auf die GPU ab einer gewissen Datenmenge durchaus lukrativ sein kann. Bei Objekten ab 4000 Polygonen wurde
festgestellt, dass die Kollisionserkennung auf der GPU effizienter
berechnet wird als auf der CPU.
Marc Gygax
Florian Habegger
--1 Vgl. Zhaowei Fan, Huagen Wan, Shuming Gao: Streaming
Collision Detection Using Programmable Graphics Hardware. State Key Lab of CAD&CG, Zhejiang University
Roger Mürner
Auswertung eines Experimentes mit einem Stein-Objekt (5120 Polygone)
www.ti.bfh.ch
109