Computer Graphics from Scratch
In practice you won’t write a software renderer for production use, but understanding how and why a renderer works will let you use OpenGL and DirectX more effectively. Computer Graphics is a fascinating topic – how do you make Toy Story out of algorithms and some geometric data? This work should give you all the knowledge necessary to write software renderers.
Source: www.gabrielgambetta.com