Graphics Programming

Description

In the 2nd year of DAE we had Graphics Programming 1. In this course, we learned how to render meshes to the viewport using different techniques. Such as a raytracer and a rasterizer. The latter we did both software- and hardware-based.
If you would like to have a look at the code, please visit the Github repository.

Engine: Custom C++ Graphics Engine

Software Raytracing

We started off with the software Raytracer project. In this project, we learned & implemented the entire raytracer pipeline. We also had to implement some features such as a 3D movable viewport. Eventually, we also saw some different ways of using materials. We started off using a simple lambert-diffuse material, but eventually implemented some PBR (physical-based-rendering) shaders to give the objects a slightly more realistic look.

Software Rasterizer

Once we were done with the raytracer, we started working on the software rasterizer. This gave us an introduction to the rasterizer pipeline, which would come in handy once we start working with shaders. In this project, we had to create the software rasterizer with a simple Phong shader to get prepared for the next exercise.

Hardware Rasterizer

This assignment was pretty similar to the previous one, at least in terms of what the goal is. The goal was to recreate our previous image exactly, but in a hardware rasterizer instead of the software version. On top of that, we also had to experiment with different mipmap filters, such as anisotropic & linear filtering.
The last thing we had to implement was a shader that was compatible with alpha maps, we didn’t have to do this for the software rasterizer. Hence the fire effect is not visible in the previous GIF.

Most Interesting CodeSnippets

Resources

Previous
Previous

AI Programming

Next
Next

Mining Simulator