Computer Graphics from Scratch