This is a project I built for self education, with the goals being:
- Use no libraries and no engines
- Use software rendering (no GPU)
- Use SIMD and multithreading
- Code as quickly as possible, without thinking too much about design
(click below to see a quick demo)
This is done trivially if one uses a math library and a graphics API such as OpenGL, but in this project I did everything the hard way, essentially inventing how to implement all the transforms, how to move the camera around, how to rasterize triangles using SIMD and subpixel precision etc., so, surprisingly, it was a lot of work
The project is on hold. It is possible that I return to it some time in the future, but this time, without the restrictions. It will most likely require a redesign (a consequence of the goal 4 above)