Program 3d Software Renderer From Scratch