To my dad (1947–2007), architect and self-taught programmer, who got me started on this path.

My dad, my two-and-a-half-year-old self, and the ZX81.
My earliest documented program ever, written at six-and-a-half years old, drew some lines on the screen of my ZX Spectrum+.
Found this interesting? Buy the author a coffee ☕
Buy the book from No Starch Press or Amazon.
Acknowledgements >>
Computer Graphics From Scratch · Dedication | Acknowledgements | Table of Contents | Introduction | Introductory Concepts
Part I: Raytracing · Basic Raytracing | Light | Shadows and Reflections | Extending the Raytracer
Part II: Rasterization · Lines | Filled Triangles | Shaded Triangles | Perspective Projection | Describing and Rendering a Scene | Clipping | Hidden Surface Removal | Shading | Textures | Extending the Rasterizer
Appendixes · Linear Algebra | Afterword