Software/Hardware Rasterizer
This is my final assignment for my course graphics Programming 1, where we learned how a ray-tracer and a rasterizer work, as well as an introduction to DirectX 11, using the Effects Framework. The project consists of two rasterizers, one software based, running on the CPU, as well as a hardware one, running on the GPU, and it is possible to switch seamlessly from one to the other.
Topics covered
Linear algebra (vectors and matrices)
Left-handed and Right-handed coordinate systems
Perspective projection
Depth buffer
Vertex interpolation
Texture mapping, sampling and filtering
PBR materials
Transparency (partial coverage)
DirectX pipeline
OBJ file parsing
Credits
Credits to Matthieu Delaere, former DAE lecturer, for the base framework implementation.
Recent rework
Replacement of raw pointers with unique pointers for all homemade classes, as well as COM pointers for DirectX objects.