In my opinion, one of the most beautiful applications of computing, programming, mathematics, physics, art and human knowledge is Computer Graphics. While I don't consider myself an expert, I will say that I've studied the topic for many years now and in this document I want to share some of the most useful and influential resources I've found through the years. I hope they are useful to you.
Please, if you have additional feedback or resources, feel free to reach out to me on twitter: @ArturoNereu or submit a GitHub issue and will gladly review and add them.
Maybe you are thinking about pursuing a career in the computer graphics field or just wanting to learn more about the topic (which is basically my case). In any case, I would start by saying that while it may not be the most difficult area of programming it is also not extremely straightforward. Computer Graphics or CG are built on top of many other fields such as math, programming, physics, and more. In many cases you won't need to have a deep understanding of those areas but it can definitely help.
- [Internet Articles]
- [Courses]
- [Tools]
- [Books]
- [Community]
- Aras Pranckevičius Blog A collection of posts by one of the smartest graphics folks.
- Graphics Programming Weekly A weekly summary of hot news around the CG world curated by Ubisoft's Jendrik Illner.
- wwwwtyro Blog on multiple CG related topics by Rye Terrell.
- Activision Research Activision/Blizzard research blog centered mostly on computer graphics.
- ShaderCat Blog Claudia Doppioslash's blog on (mostly) CG related topics.
- Behind the Pretty Frames A collection of in-depth articles around rendering of pretty games.
- Immersive Math An interactive site to learn basic math for Computer Graphics.
- Decoding a Projection Matrix Short article on the Projection Matrix.
- Exponentially Better Rotations Interactive article teaching Exponential Rotations by Max Slater
- Shader Tutorials By Ronja Multiple Unity-centered tutorials on Shader development. Support her on Patreon.
- Lighting Design in CG Stefan Müller provides a very interesting presentation on how to use lighting as a tool to compose CG imagery.
- Basic Color Science for Graphics Engineers Fun and short write up on the basics of Color for people working on Computer Graphics.
- Tech Focus: Global Illumination - What It Is, How Does It Work And Why Do We Need It? Digital Foundry's explanation on Global Illumination.
- Authoring Efficient Shaders for Optimal Mobile Performance David Sena and Zandro Fargnoli's 2022 GDC session
- Paperbug Easy-to-search site with a collection of graphics programming papers and resources by Jeremy Ong
- Introduction to Computer Graphics Cem Yuksle's introductory class to Computer Graphics. (University of Utah).
- Pikuma Multiple CG-related courses by Gustavo Pezzi
- Learn Computer Graphics From Scratch! @Scratchapixel's Computer Graphics course.
- CS1230 : Introduction To Computer Graphics Brown University CG course by the Brown University.
- 15-462/662: Computer Graphics CG course by the Carnegie Mellon University. Honestly one of the best courses I've taken. Lectures are free on YouTube.
- Rendering Course: A course on Ray Tracing and Global Illumination: TU Wien course about Rendering by Prof. Károly Zsolnai-Fehér (from: Two Minute Papers)
- Compute Shaders Course Paid course on Compute Shaders with Unity by Arsiliath.
- Shader Development using Unity Course on general CG and shader development with Unity by Technical Artist Chayan Vinayak.
- The Book of Shaders A gentle step-by-step guide through the abstract and complex universe of Fragment Shaders.
- Shader School An introduction to GLSL shaders and graphics programming that runs in your web browser.
- 3D Game Shaders For Beginners A collection of well-crafted explanations and examples of shading techniques by lettier
- Pixel Spirit Deck A set of phisical cards that helps you learn shader development with GLSL (but really applies to any shader language).
- Math for Game Devs Freya Holmér (Shader Forge, Shapes) free videos teaching mathematics for game developers.
And this very interesting study on Custom Game Engines by raylib.
Put your skills to use, learn, try and more by using these online shader sandboxes:
- ShaderToy
- Shaderworlds A collection of open source VR-enabled shader worlds.
- pocket.gl
- Shdr
- Shadron Shadron is the ultimate graphics editor for programmers
- KodeLife Real-time GPU shader editor
- RenderDoc A must use tool to inspect, debug and analize your frames.
- NVIDIA Nsight Graphics Tool by NVIDIA to analize your frames. Direct3D, Vulkan, OpenGL, etc.
- GLSL
- HLSL The High Level Shading Language for DirectX
- CG NVIDIA's deprecated programmable shading language.
- Open Shading Language Small but rich language for programmable shading in advanced renderers and other applications.
- Filament Project by Google Real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS and WASM/WebGL
- Mitsuba 2 Renderer Mitsuba 2 is a research-oriented retargetable rendering system, written in portable C++17.
- tiny renderer A tiny software rasterizer by Dmitry Sokolov.
- Caffeine Path Tracer Open source and well documented path tracer by Rye Terrell
- The Book of Shaders free online, please consider donating
- Physically Based Rendering free online
- Real Time Rendering
- The Graphics Codex
- Ray Tracing in a Weekend, book series free online
- Linear Algebra Done Right free online
- 3D Math Primer for Graphics and Game Development free online
- CG List on Twitter I've found Twitter to be a great source of ideas, material and inspiration. Here's a list of people sharing their knowledge.
- Computer Graphics Stack Exchange Question and Answer site focused on Computer Graphics.
- Shadertoy Facebook group Discussion group around Shadertoy.
- noclip.website A digital museum of video game levels.