The 3D engine was created in C++ from scratch in console. It was created to support multi-object rendering on the CPU. It is possible to load in 3d models, and have these models be lit by phong shading.
- Created a diverse math library for several linear algebraic operations, including matrices and vectors
- Made a fully operational shader pipeline on the cpu with two stages: vertex, and fragment
- Created a model system to allow rendering multiple objects to the screen at once.
- Implemented textures from scratch via cpu-run shaders using barycentric interpolation
- Added lighting to the scene with per-vertex (gouraud) and per-pixel (phong) shading
- Added support for point lights, directional lights, and spotlights
- Created a custom line renderer by implementing the Bresenham line equation
- Created bilinear, trilinear, and anisotropic filtering from scratch