Author: Theresia Hansson


Title: Graphics Processor Based Rigid Body Physics Simulation

Abstract
This project is about the mapping of a rigid body physics simulation to a parallel stream processor, the programmable Graphics Processing Unit (GPU) located on modern video cards. All basic functionality corresponding to a physics system used in for example computer games, should be implemented on the GPU. This includes updating positions and velocities (using the laws of classical dynamics) as well as collision handling. After a closer look at the problem, however, it is concluded that not every part of the system can run on the GPU in real-time. Apart from that, the developed system is very well parallelized and can perform physics calculations on thousands of bodies. The developed prototype application gives visually pleasing results, and runs with a very good real-time frame rate. The system is expected to offload the heavy physics computations from the CPU so that it can perform other valuable calculations.


Svensk titel: Grafikprocessor-baserad fysikalisk simulering av fasta kroppar

Sammanfattning
Det här arbetet handlar om mappningen av en fysikalisk simulering av fasta kroppar till en parallell streamprocessor, den programmerbara grafikprocessorn (GPUn) com sitter på moderna grafikkort. All grundläggande funktionalitet som motsvarar ett fysiksystem, liknande de som ofta används i datorspel, skulle implementeras på GPUn. Detta inkluderar uppdatering av hastigheter och positioner (med hjälp av lagar från klassisk dynamik) samt kollisionshantering. Men, efter närmare betraktning av problemet, fastställdes att inte hela simuleringen kunde köras på GPUn i realtid. Förutom det så är det utvecklade systemet väl parallelliserat och kan utföra beräkningar för tusentals kroppar. Den färdiga prototyp-applikationen ger fina visuella resultat, och körs med en god realtidshastighet. Detta förväntas avlasta CPUn från många av de annars väldigt krävande fysikberäkningarna, så att andra värdefulla operationer kan genomföras på den istället.