We developed this project in order to learn about and explain the concepts in software and emerging technologies in hardware that drive increasingly realistic computer graphics.
Inspired by our affinity for computer games and appreciation of realistic computer graphics, we sought to learn about how those graphics are created as well as the hardware
that enables them, specifically focusing on ray tracing. We believed that the background in computer architecture and CPU design that we had acquired throughout the semester would guide us
to better understanding how graphics processing units functioned.
We began by investigating the graphics pipeline and creating our own high-level software simulation of the pipeline. Though
that the high level, single threaded Python simulation did not directly mimic the behavior of the hardware inside a graphics processing unit, it provided us with a working knowledge of computer graphics and showed us the
computations necessary in the graphics pipeline and the need for massive parallelism in graphics processing units. Equipped with this knowledge, we now apprehended the reasoning behind the structure of the modern graphics pipeline.
Though we considered implementing a SIMD unit in Verilog as well as building a more hardware-realistic software simulation of the graphics pipeline, the shear volume of brainless copy-and-paste required made us re-evaluate our learning goals at
this point in the project and instead try to move in a new direction.
Realizing that NVIDIA had only recently revealed its new Turing architecture complete with an RT (ray tracing) core that could perform real-time ray tracing, we were
inspired to learn about the different computer graphics approach taken by ray tracing and the challenges that made it so difficult to perform in real-time. As a result, we redirected our efforts in favor of a research project
that not only traces through the information regarding the traditional raster graphics pipeline but also the development in the heavily realism
oriented ray tracing world. We hope that our work, including our website and poster sessions during the final and Olin Expo, will provide helpful educational
content regarding computer graphics, parallel programming, and parallel hardware to community members. This knowledge could point them in a direction
to consider computer architecture as a good introduction to the inner working of this computationally expensive subject if they are interested.
We dedicated our time to researching as much as possible about the project, spending most of our meetings discussing our findings in order to better digest the material.
The wide range of textbooks, industry documents, and research paper we looked through is available under the resource page had provided deep insights to us and hopefully
will offer more leads for the visitors of our page.