Learn OpenGL

title
Learn OpenGL
type
entity
summary
Joey de Vries's free online book on modern core-profile OpenGL, in print and as a free PDF
aliases
LearnOpenGL, learnopengl.com
tags
graphics, opengl, c++, learning-resource
created
2026-07-29
updated
2026-07-29

learnopengl.com is Joey de Vries's online book on modern OpenGL. Its framing is a complaint about what else was available: most OpenGL material online teaches immediate mode โ€” the old fixed-function API โ€” or is incomplete, undocumented, or written for a different kind of learner. The site's answer is core-profile OpenGL only, taught in order, with running examples at each step.

What it covers

The stated audience is people with no graphics programming experience, and the sequence reflects that. It starts with core graphics concepts and how OpenGL actually gets pixels onto a screen, on the argument that using modern OpenGL well requires knowing what it is doing underneath rather than copying calls. On top of that come the techniques that turn a triangle into an application: traversing a scene, lighting, loading models authored in a modelling program, post-processing effects. There is also a walkthrough series that builds a small game from the material, so the book ends with something that runs rather than a pile of isolated demos.

Guest articles extend the core sequence into topics the main chapters skip โ€” skeletal animation is one of them.

The three editions

All content is free on the site and de Vries says it always will be.

The print edition is the same content revised over seven years and aggregated into a physical book, sold on Amazon US and UK, Barnes & Noble and other retailers. He warns that some retailers price it absurdly and that the right figure is roughly $60 US; wait for the price to settle rather than pay more.

The third edition is the print book's source files cleaned up and published as a free PDF, meant for reading offline, on the move, or for annotating and printing yourself. It carries the tradeoffs of being offline: URLs written out in full or as footnotes, videos reduced to static images, and none of the function-signature hover popups the website has.

Where it fits

It is a standing reference rather than a one-pass read, which is how it shows up elsewhere. lisyarus's engine-writing essay cites it three times without ceremony โ€” for affine transformations when discussing what a 3D engine's graphics layer has to expose, for skeletal animation in the same list, and for text rendering at the point where he argues you should reach for FreeType or harfbuzz rather than write your own font loader. Its chapters are the default answer to "where do I read about this part of the pipeline".

Against learn-webgpu-cpp, which teaches the same territory through WebGPU, LearnOpenGL is the more complete and more finished resource, and the API it teaches is the older one โ€” the same OpenGL 3.3 that psemek wraps in the engine essay above. The WebGPU guide is the one to pick if you want the web as a build target.