Computer Graphics from Scratch demystifies the algorithms used in modern graphics software with basic programming and high school math.
1. Introductory Concepts
Part I: Raytracing
2. Basic Raytracing
4. Shadows and Reflections
5. Extending the Raytracer
Part II: Rasterization
7. Filled Triangles
8. Shaded Triangles
9. Perspective Projection
10. Describing and Rendering a Scene
12. Removing Hidden Surfaces
15. Extending the Rasterizer
Appendix A: Linear Algebra
Gabriel Gambetta started coding games around the age of 5 on a ZX Spectrum. After studying Computer Science and working at a respectable local company in his native Uruguay, he started a game development company and ran it for 10 years while teaching Computer Graphics at his alma mater. More recently, Gambetta hasbeen working at Google Z rich, where he's been since 2011 except for a stint as an early engineer in the London-based multiplayer game tech unicorn Improbable.
"If you've ever wanted to peek behind the curtain and understand
how [computer graphics] work, here you've got it in a step-by-step
process. . . . A nice resource to have to learn about the basics of
computer graphics. . . . If you want to jump in and learn about
computer graphics or get an understanding of how ray tracing works,
this is a good choice."
—Game From Scratch
"There's enough information in his book for a university course. In fact, the book is based on the course Gambetta taught before he became a senior engineer at Google."
—Joy Schwabach, Arkansas Democrat Gazette's On Computers
"One of the best textbooks I have ever seen! . . . I am in awe of the simplicity of the math and science involved. It feels a lot like I am wielding magical powers that I've always thought were beyond my reach. [Gabriel Gambetta has] absolutely managed to demystify the process. I guess it's a sort of 'the power was within you the whole time' kind of moment."
"I love it. I love fundamental and foundational books like this. It's not tied to language or platform so doesn't get dated. I learned SO MUCH going through this book. . . . I definitely recommend this book if learning computer graphics fundamentals is something you're curious about."
—Dylan Bennett, Curator of PiGameDev
"Computer Graphics from Scratch is a great jumping-off point for those who want to learn more about raytracing and rasterization."
—Julia Roth, Geek Girl Authority
"An ideal textbook on DIY computer graphic creation, Computer Graphics from Scratch: A Programmer's Introduction to 3D Rendering is especially and unreservedly recommended for personal, professional, community, school, college, and university library Computer Programming collections and supplemental studies curriculums."
—James A. Cox, Midwest Book Review
"If you want to understand how shaders are programmed, something important not just to game developers or animators but to anyone who needs to understand what's happening with the graphics library that they are using that isn't working right, this book is for you. The math is just algebra with linear algebra included, and Gambetta builds up his renderers from scratch in a manner that appears logical and easy to follow."
—Rik Farrow, USENIX