Computer Graphics From Scratch is an upcoming book that takes a unique approach to teaching graphics programming. The book started life a few years ago as a free e-book that was picked up by No Starch Press. Even better, No Starch is permitting the author Gabriel Gambetta to host the book for free on his website. Why should you read this book? Well, let’s check the “Why Should You Read This Book” section from the book:
This book should give you all the knowledge you need to write software renderers. It does not make use of, or teach you how to use, existing rendering APIs such as OpenGL, Vulkan, Metal, or DirectX.
Modern GPUs are powerful and ubiquitous, and few people have good reason to write a pure software renderer. However, the experience of writing one is valuable for the following reasons:Shaders are software.
The first, ancient GPUs of the early 1990s implemented their rendering algorithms directly in hardware, so you could use them but not modify them (which is why most games from the mid-1990s look so similar to each other). Today, you write your own rendering algorithms (called shaders in this context) and run them in the specialized chips of a GPU.Knowledge is power.
Understanding the theory behind the different rendering techniques, rather than copying and pasting half-understood fragments of code or cargo-culting popular approaches, lets you write better shaders and rendering pipelines.Graphics are fun.
Few areas of computer science provide the kind of instant gratification offered by Computer Graphics. The sense of accomplishment you get when your SQL query runs just right is nothing compared to what you feel the first time you get raytraced reflections right. I taught Computer Graphics at university for five years, and I often wondered why I enjoyed teaching the same thing semester after semester for so long; in the end, what made it worth it was the way the faces of my students would light up and seeing them use their first rendered scenes as their desktop backgrounds.
If you are in the market for computer graphics books, there are a shocking number of bundles on Humble right now. The Math For Programmers and Programming Fundamentals By Mercury bundles both contain e-books for learning game development math. The $1 tier of the GameDev.tv Course Bundle also contains an excellent video course on game development math.
You can learn more about Computer Graphics From Scratch in the video below. Links above contain affiliate codes that pay GFS a small commission if used (and thanks if you do!)