Annotated books, courses, websites, repos, and YouTube channels for computer graphics — organized by topic and difficulty.
"Fundamentals of Computer Graphics" by Steve Marschner and Peter Shirley (5th edition) The standard university textbook. Covers everything from rasterization to ray tracing to curves to animation. Excellent balance of theory and practice. If you only buy one CG textbook, buy this one. Used in CMU 15-462, Cornell CS4620, and dozens of other courses.
"Computer Graphics: Principles and Practice" by John Hughes, Andries van Dam, Morgan McGuire, et al. (3rd edition) The "bible" — 1200+ pages covering every topic in depth. More comprehensive than Marschner/Shirley but also more demanding. Best as a reference when you need deep coverage of a specific topic.
"Real-Time Rendering" by Tomas Akenine-Moller, Eric Haines, and Naty Hoffman (4th edition) The definitive reference for real-time graphics — everything the GPU does. Covers rasterization, shading, shadows, global illumination approximations, acceleration structures, and modern rendering techniques. Every game graphics programmer has this on their shelf. The accompanying website (realtimerendering.com) has an incredible list of resources updated regularly.
"GPU Gems" series (NVIDIA, available free online) Three volumes of practical GPU programming techniques. Somewhat dated (2004-2007) but many concepts are still relevant. Great for learning how to think about GPU-friendly algorithms.
"Physically Based Rendering: From Theory to Implementation" (PBRT) by Matt Pharr, Wenzel Jakob, and Greg Humphreys (4th edition, free online at pbrt.org) The gold standard for understanding production ray tracing. Every concept is explained with complete, working C++ code. The 4th edition covers GPU rendering and spectral rendering. Used at every major film studio. If you want to understand how movies are rendered, read this.
"Ray Tracing in One Weekend" series by Peter Shirley (free online at raytracing.github.io) Three short books that take you from zero to a working path tracer. "In One Weekend" builds a basic ray tracer. "The Next Week" adds BVH, textures, motion blur, and volumes. "The Rest of Your Life" covers Monte Carlo methods and importance sampling. The fastest path from "I've never ray traced" to "I understand path tracing."
"The Nature of Code" by Daniel Shiffman (2nd edition, free online at natureofcode.com) Simulating natural phenomena with code: physics, particle systems, flocking, cellular automata, fractals, neural networks. Written for Processing/p5.js. Accessible, fun, and deeply creative. The companion YouTube series (The Coding Train) is outstanding.
"Computer Graphics from Scratch" by Gabriel Gambetta (free online at gabrielgambetta.com/computer-graphics-from-scratch) Builds a rasterizer and a ray tracer from absolute zero — no libraries, no frameworks, just math and pixels. Excellent for understanding what's really happening inside the GPU. Short, clear, and practical.
"The Book of Shaders" by Patricio Gonzalez Vivo and Jen Lowe (free online at thebookofshaders.com) An interactive introduction to fragment shaders. Beautiful, artistic, and practical. Covers noise, patterns, shapes, transformations, and generative art. Each chapter has an interactive code editor. One of the best learning resources on the internet, period.
"3D Math Primer for Graphics and Game Development" by Fletcher Dunn and Ian Parberry All the linear algebra you need for graphics — vectors, matrices, transforms, quaternions — explained for programmers, not mathematicians. Great if Part 0 of this guide left you wanting more depth.
"Mathematics for 3D Game Programming and Computer Graphics" by Eric Lengyel (3rd edition) More advanced math coverage — includes geometric algebra, calculus on manifolds, and physics. Good for the mathematically inclined.
CMU 15-462: Computer Graphics — Keenan Crane (YouTube) One of the best computer graphics courses in the world, fully available on YouTube. Keenan Crane is an exceptional teacher. Covers the full pipeline from geometry to rendering, with beautiful visuals and clear explanations. The assignments (available on the course website) build a mini-renderer.
MIT 6.837: Introduction to Computer Graphics (MIT OpenCourseWare) MIT's offering. More math-heavy than CMU's course. Good lecture notes and assignments available through OCW.
UCSD CSE167x: Computer Graphics (EdX, by Ravi Ramamoorthi) A solid MOOC covering foundations. Ramamoorthi is a leading researcher in rendering. Covers transforms, OpenGL basics, ray tracing, and global illumination.
Matt DesLauriers: Creative Coding Workshops (Frontend Masters) Hands-on workshops covering creative coding with JavaScript — canvas-sketch, shaders, generative art techniques. Practical and immediately applicable. Matt's work and tools (canvas-sketch, glsl-noise, etc.) are widely used in the creative coding community.
TU Wien: Rendering Course (YouTube, by Bernhard Kerbl and others) The university that produced the 3D Gaussian Splatting paper offers rendering lectures on YouTube. Cutting-edge content.
LearnOpenGL (learnopengl.com) — by Joey de Vries The best resource for learning OpenGL and modern real-time rendering concepts. Covers everything from "Hello Triangle" to PBR, shadow mapping, SSAO, deferred rendering, and bloom. Each chapter has complete, runnable C++ code. Even if you don't use OpenGL, the concepts transfer directly to Vulkan, WebGPU, and Metal.
Scratchapixel (scratchapixel.com) In-depth articles on computer graphics fundamentals — geometry, ray tracing, rasterization, mathematics. More theoretical than LearnOpenGL, more practical than textbooks. Excellent for understanding the "why" behind algorithms.
The Book of Shaders (thebookofshaders.com) Interactive shader tutorial (see Books section above). The interactive editor makes it uniquely effective for learning.
Shadertoy (shadertoy.com) A platform for writing and sharing fragment shaders in the browser. Thousands of incredible shaders — ray marchers, fractals, games, simulations — all in a single fragment shader. Study other people's code here. inigo quilez (iq), a Shadertoy co-founder, has created some of the most impressive shader art ever made.
WebGPU Fundamentals (webgpufundamentals.org) The sister site to WebGL Fundamentals, covering the modern WebGPU API. Clear explanations, interactive examples. This is where to start if you want to learn the next-generation web graphics API.
Vulkan Tutorial (vulkan-tutorial.com) Step-by-step Vulkan tutorial that takes you from window creation to textured, lit 3D rendering. Vulkan is verbose, but this tutorial makes it manageable.
Inigo Quilez's Articles (iquilezles.org) SDF formulas, ray marching techniques, smooth min/max, distance functions for every shape imaginable. Indispensable reference for procedural graphics.
Real-Time Rendering Resources (realtimerendering.com) Companion site to the "Real-Time Rendering" book. Maintains an enormous, regularly updated list of papers, books, courses, and tools.
PBRT Online (pbrt.org) The full text of "Physically Based Rendering" is available free online. Read it alongside the source code.
nature-of-code/noc-book-2 — github.com/nature-of-code/noc-book-2 The source code and text for "The Nature of Code" 2nd edition. p5.js examples covering physics, particles, flocking, fractals, and more.
mattdesl/workshop-generative-art — github.com/mattdesl/workshop-generative-art Matt DesLauriers' generative art workshop materials. canvas-sketch based, covering noise, color palettes, geometry, and export.
mattdesl/workshop-webgl-glsl — github.com/mattdesl/workshop-webgl-glsl GLSL shader workshop. Covers fragment shader fundamentals with practical, artistic examples.
RayTracing/raytracing.github.io — github.com/RayTracing/raytracing.github.io The "Ray Tracing in One Weekend" book series, including complete source code in C++.
KhronosGroup/glTF-Sample-Models — github.com/KhronosGroup/glTF-Sample-Models Official collection of glTF test models. Essential for testing your glTF loader or renderer.
SaschaWillems/Vulkan — github.com/SaschaWillems/Vulkan Dozens of Vulkan examples covering every major technique — PBR, deferred, compute, ray tracing. The best Vulkan reference code.
JoeyDeVries/LearnOpenGL — github.com/JoeyDeVries/LearnOpenGL Source code for every chapter of LearnOpenGL. Clean, well-organized C++.
mitsuba-renderer/mitsuba3 — github.com/mitsuba-renderer/mitsuba3 Research-grade differentiable renderer by Wenzel Jakob. Cutting-edge rendering algorithms.
PixarAnimationStudios/OpenSubdiv — github.com/PixarAnimationStudios/OpenSubdiv Pixar's open-source subdivision surface library. Production-quality, GPU-accelerated.
embree — github.com/RenderKit/embree Intel's high-performance ray tracing kernels. The fastest CPU BVH traversal available. Used in many production renderers.
3Blue1Brown (Grant Sanderson) The best math visualizations on the internet. The "Essence of Linear Algebra" series is essential preparation for computer graphics — it builds visual intuition for vectors, matrices, transforms, and eigenvalues. "Essence of Calculus" is equally good.
Sebastian Lague Stunning graphics programming projects — procedural planet generation, ray marching, mesh generation, path finding, coding adventures. Each video is a complete, polished project with beautiful visuals and clear explanation. Highly motivating for getting into graphics programming.
The Coding Train (Daniel Shiffman) Energetic, accessible creative coding tutorials using p5.js and Processing. Covers everything from basic shapes to ray marching to neural networks. The "Coding Challenges" playlist is a treasure trove of project ideas.
Two Minute Papers (Karoly Zsolnai-Feher) Short summaries of recent computer graphics research papers. Great for keeping up with the field and getting excited about what's possible. Covers neural rendering, fluid simulation, real-time ray tracing, and more.
Acerola Deep dives into specific rendering techniques — color spaces, tone mapping, bloom, ambient occlusion, stylized rendering. Excellent production quality with clear code-along examples.
Freya Holmer Beautiful visualizations of math and graphics concepts — Bezier curves, splines, quaternions, shader math. Her GDC and Unite talks are some of the best visual explanations of these topics.
Ben Cloward Shader tutorials for Unity and Unreal. Practical, production-oriented. Great for learning the shader graph workflow.
Inigo Quilez The Shadertoy co-founder's channel. Ray marching, SDF techniques, procedural graphics. Short, dense, brilliant.
Blender (blender.org) — Free, open-source 3D creation suite. Modeling, sculpting, animation, rendering (Cycles path tracer + EEVEE real-time), compositing. The standard for indie and increasingly for professional work.
Shadertoy (shadertoy.com) — Browser-based shader playground. Write, test, and share fragment shaders instantly.
editor.p5js.org — Browser-based p5.js editor. Zero setup creative coding.
RenderDoc (renderdoc.org) — Free GPU debugger. Capture a frame, inspect every draw call, every texture, every shader. Indispensable for debugging rendering issues.
NVIDIA Nsight Graphics — GPU profiler and debugger for NVIDIA GPUs. More detailed than RenderDoc for performance analysis.
glslsandbox.com — Another browser-based shader editor, simpler than Shadertoy.
Desmos (desmos.com) — Graphing calculator. Invaluable for visualizing math functions, easing curves, and 2D geometry.
GeoGebra (geogebra.org) — Interactive geometry and algebra. Great for visualizing transforms and geometric constructions.
The premier computer graphics conference. Proceedings are the cutting edge of the field. Key recurring presentations:
"Advances in Real-Time Rendering in Games" — Annual course covering the latest techniques used in shipped AAA games. Speakers from Epic, DICE, Activision, Naughty Dog, and other studios. Available on advances.realtimerendering.com.
"Physically Based Shading in Theory and Practice" — Annual course on PBR techniques. How Disney, Pixar, Weta, and game studios approach material models. Essential reading for anyone implementing PBR.
"Open Problems in Real-Time Rendering" — Discussion of unsolved challenges. Great for understanding what the industry is still struggling with.
GDC Vault contains thousands of talks, many free. Key graphics tracks:
- "Rendering of [Game Title]" — Studios explain their rendering techniques in detail. The Uncharted, God of War, Doom, and Horizon series talks are particularly illuminating.
- Math for Game Programmers — Accessible talks on the math underlying game graphics and physics.
More focused than SIGGRAPH, specifically targeting real-time rendering. Papers are often more practical and implementation-focused.
Keenan Crane's Website (keenan.is) — Lecture notes, slides, and papers on discrete differential geometry, mesh processing, and rendering. Beautifully produced and clearly explained.
Ravi Ramamoorthi's Lecture Notes (cseweb.ucsd.edu/~ravir) — Foundations of rendering, light transport, and signal processing for graphics.
Graphics Codex (graphicscodex.com) by Morgan McGuire — A compact, web-based reference for graphics algorithms and data. Like a pocket textbook.
GPU Architecture Resources — Understanding GPU hardware helps you write faster shaders:
- "Life of a Triangle" (NVIDIA) — How the GPU processes a triangle from vertex to pixel
- "A Trip Through the Graphics Pipeline" by Fabian Giesen — Legendary blog series on how GPUs actually work
- NVIDIA Whitepaper Archive — Fermi, Kepler, Turing, Ada Lovelace architecture documents
ShaderToy Discord — Active community of shader programmers sharing techniques and helping beginners.
Graphics Programming Discord (discord.gg/graphicsprogramming) — One of the largest graphics programming communities. Channels for ray tracing, Vulkan, OpenGL, creative coding, and career advice.
/r/GraphicsProgramming (Reddit) — Active subreddit for sharing projects, asking questions, and discussing graphics techniques.
/r/opengl, /r/vulkan, /r/webgpu (Reddit) — API-specific subreddits.
Real-Time Rendering blog (realtimerendering.com/blog) — Eric Haines' blog tracking new papers, books, and resources in real-time rendering. Updated regularly.
Jendrik Illner's Graphics Programming Weekly — A weekly newsletter collecting the best new graphics programming blog posts, papers, and talks.
If you're not sure where to start, here are recommended sequences:
- "Computer Graphics from Scratch" (Gambetta) — Build a rasterizer and ray tracer from zero
- LearnOpenGL — Modern OpenGL and real-time techniques
- "Real-Time Rendering" (Akenine-Moller) — Deep reference for everything real-time
- SIGGRAPH "Advances in Real-Time Rendering" talks — Current industry practice
- "Ray Tracing in One Weekend" series (Shirley) — Build a path tracer
- CMU 15-462 (Keenan Crane, YouTube) — Full CG foundations
- PBRT (Pharr et al.) — Production ray tracing theory and implementation
- Mitsuba 3 source code — Modern differentiable renderer
- The Coding Train (YouTube) — p5.js basics with energy and joy
- "The Nature of Code" (Shiffman) — Physics and simulation with p5.js
- "The Book of Shaders" — Fragment shader art, interactive
- Shadertoy — Learn by reading and modifying other people's shaders
- Inigo Quilez's articles — Advanced SDF and procedural techniques
- "Fundamentals of Computer Graphics" (Shirley/Marschner) — Textbook foundations
- PBRT — Production rendering
- USD documentation (openusd.org) — Scene composition for film
- SIGGRAPH production sessions — How studios actually make films