The best book on the nitty gritty of graphics that I've found is Computer Graphics: Principles and Practice http://www.amazon.com/Computer-Graphics-Principles-James-Foley/dp/0201121107

However, as this was written in the early 90s, it is a little out of date.

Are there some similar books which go over the more recent developments?

  • 1
    \$\begingroup\$ I think this is confusing, since it's about fundamentals that you're asking and you need something modern :) \$\endgroup\$ – legends2k Dec 28 '12 at 4:12

Pick one from each of these and work your way up.

1. CG Fundamentals

† these aren't OpenGL books, they just use OpenGL to teach rudimentary CG concepts

Of these, my personal favourites are the last two. More practical and hence engrossing for the beginner; the explanations aren't very cryptic, unlike the other, more academic books in the list.

Reason Real-Time Rendering is omitted is it's not a get your hands dirty book; it's a broad survey of techniques used in the industry than on fundamentals of CG; theory-heavy than workout-heavy: something beginners need to understand basics well. Even the theory covered is fairly high-level at many points.

2. Math Basics

To be proficient in computer graphics or even to understand the basics, a decent amount of mathematical concepts needs to be grasped; it requires one to be comfortable in using trigonometry and linear algebra. For this I recommend

  • Vector Math for 3D Computer Graphics is by far the best beginner tutorial for vectors and matrices. It is also interactive in that at the end of each section there's a test question to verify and seal the understanding of that topic.


Out of these math books, the most intuitive is the first with lot of funny anecdotes in between, the last is for hard core math fanatics (if you're afraid of symbol vomit, steer clear of it), although it's a good book for experienced CG programmers who need a reference. The one in between is really good in that it details out somethings which the other two (or many books for that matter) omit, and in the spectrum of intuitiveness and hard core math it's in between.

3. Tutorials

Just reading doesn't seal the concepts so working out is definitely recommended. For that I found these tutorials very good; most give a decent explanation of the theory too.

Don't get too attached to a specific library or tool (e.g. OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz, etc.) Once you understand the basic concepts (math behind them), implementing them in any language, framework or library wouldn't be a big deal. Just syntax/compiler would change, but the techniques themselves remain the same.

  • \$\begingroup\$ Great job on linking the "Math Basics" interactive website \$\endgroup\$ – oneiros Mar 19 '19 at 18:34

Real-Time Rendering

Not for the faint of heart.

Real-Time Rendering

  • 4
    \$\begingroup\$ +1. However this book is more about "the top of the current graphics knowledge" than about fundamentals. But this is a must read anyhow and this is also my favorite on this subject. \$\endgroup\$ – Valkea May 14 '11 at 0:23
  • \$\begingroup\$ I love that book so much \$\endgroup\$ – grisevg Dec 20 '16 at 14:50

I've heard that the GPU Gems series of books are a really great read. You can purchase them (a quick search on amazon.com will bring up some results), but they are also free to read online:


  • 3
    \$\begingroup\$ GPU gems are great, but nothing to start with ... \$\endgroup\$ – Notabene May 15 '11 at 17:21

We used Computer Graphics with OpenGL (Hearn & Baker) when I was in university and I liked it a lot. Despite its name, it gives the fundamentals of 2D and 3D graphics and rendering. OpenGL is used as example when doing 3D graphics, but only after the fundamental maths and algorithms have been presented.


After that, Real Time Rendering as already suggested.


Not the answer you're looking for? Browse other questions tagged or ask your own question.