This project is a 3D renderer written from scratch, entirely in software.
The only graphical instruction it uses is setPixel(int x, int y, int red, int green, int blue).
All the rest of the computation is done with mathematical calculations.
The model is defined by polygon triangulation and is composed of about 3000 vertices.
Segment rasterization is done by using the Bresenham algorithm.
Triangles are filled using linear interpolation based on the color of their 3 vertices.
The rendering also uses a Z-buffering technique to handle correctly the depth.
Lightning is computed based on the Gouraud shading algorithm.