This is the repository for our Advanced Computer Graphics course project at Utrecht University. Our project focuses on physically-based rendering of 3D scenes, with a particular emphasis on making rendering more efficient through acceleration structure construction and traversal, and variance reduction. The project is divided into several folders:
- CPU Implementation: In this folder, we have implemented a BVH traversal on the CPU to enhance the speed and efficiency of our ray tracing algorithm.
- GPU Implementation: In this folder, we have demonstrated our implementation of Wavefront Path Tracing on the GPU, utilizing multiple important sampling and a binning BVH acceleration structure to enhance the performance of the algorithm.
- IMG_output: This folder contains some images generated by our ray tracing and path tracing algorithms.
Throughout the project, we aim to showcase the capabilities and benefits of GPU-accelerated path tracing in computer graphics, as well as the advantages of using acceleration structures to improve rendering efficiency. Additionally, we explore recent hardware developments and state-of-the-art filtering technology aimed at interactive rendering.
The master course Advanced Graphics addresses advanced topics in 3D computer graphics. The focus of the course is Physically-based rendering of 3D scenes. The course has two main focus areas: Rendering Algorithms and Making Rendering More Efficient. Efficiency will be sought through Acceleration Structure Construction and Traversal and Variance Reduction (rather than low level optimization). The course starts with a recap of Whitted-style ray tracing. We then explore various acceleration structures that help to run the ray tracing algorithm in real-time on commodity hardware. We will see that a well-built Bounding Volume Hierarchy provides both flexibility and speed, for static and dynamic scenes.
The second part of the course introduces the path tracing algorithm, and related light transport theory. We investigate various methods to improve the efficiency of the algorithm using probability theory. We will see that efficient path tracing can yield interactive frame rates. In the third part of the course we use GPGPU to run ray tracing and path tracing on the GPU. We will explore recent research in high performance stochastic rendering.
This year we will also explore recent hardware developments, and related to that, various ray tracing APIs and state-of-the-art filtering technology aimed at interactive rendering.
https://www.cs.uu.nl/docs/vakken/magr/2020-2021/index.html#downloads