Computer Graphics From Scratch: A Programmer's Introduction to 3D Rendering