Real-time Shading and Shadows using GPGPU Techniques
Modern GPUs have evolved to the point where they now offer a generality of programming that rivals CPUs, while at the same time sustaining much greater raw performance. In combination with a continued rapid increase in power, this generality has turned the GPU into an important platform for general purpose high performance computing algorithms. These general purpose algorithms targeting GPUs are called GPGPU algorithms.
Computer Graphics algorithms are notable for high computational demand. The rapid GPU evolution is, in fact, to some extent propelled along by demand from the computer games industry. In the past, GPUs have been mostly fixed-function, and real-time graphics algorithms were largely concerned with coaxing an unwilling graphics API to compute interesting results. With the new generality of GPUs and increasing programmable computational power, focus in computer graphics research is switching to employing GPGPU techniques, even for problems that have traditionally been the domain of fixed function hardware.
In this thesis, I present work that contributes towards exploiting the modern GPU for solving important graphics problems, using a GPGPU approach. The thesis contributes a high-performance GPU stream compaction algorithm and a GPU model that can be utilized to construct further efficient GPU algorithms, an improved ray hierarchy algorithm and its application to quickly computing shadows on the GPU, and a comprehensive survey and further development of a new improved approach to real-time shading using GPGPU techniques.