The topic of my thesis is developing a billiard game, and exploiting the advantages of the GPGPU programming model and the CUDA architecture.
GPUs are processors with high performance, which are capable of rapid calculations on large data structures. Basically, they were designed for graphics processing, but the GPGPU approach has begun to spread in the recent years, which sees the GPU like a general computing unit.
It is well known that ray tracing is really slow, therefore it can be beneficial to compute the calculations, that are necessary to display the data, on the GPU, rather than the CPU.
In the billiard program, the user can control the game by controlling the cue with the keyboard. The scene of the game is the billiard table, where there is 15 + 1 balls, the fully colored are numbered from 1 to 8, and from 9 to 15 are the numbers of the striped balls. There is one more ball which is white. The user should push this white ball to hit other balls. The aim is to push every ball to one of the holes of the table except the white one.