Want to get started in Graphics Programming? Start Here!
by u/waramped at original reddit post
edited by u/CodyDuncan1260 for mdbook
First of all, credit goes to u/CorySama and u/Better_Pirate_7823 for most of this, I am mostly just copy-pasting from them. If all goes well, we can Sticky this for everyone to see.
Courtesy of u/CorySama: The main thing you need to know is “Smart” by Fabian “ryg” Giesen
OpenGL is a good API to start with. There’s a lot to learn regardless of which API you use. Once you can do an animated character in a scene with lighting, shadows, particles and basic full-screen post processing, you’ll know how to proceed forward on your own from there.
Learning Resources
- Learn OpenGL
- Ray Tracing in One Weekend book series
- 3D math Primer for Graphics and Game Development
- Game Engine Architecture, Third Edition
- https://www.gameenginebook.com
- by Jason Gregory
- Real-Time Rendering, 4th Edition
- Physically Based Rendering in Filament
- https://google.github.io/filament/Filament.md.html
- by Romain Guy @romainguy and Mathias Agopian (at google)
- A trip through the Graphics Pipeline 2011
Tools
- NVIDIA NSight Graphics by NVIDIA - https://developer.nvidia.com/nsight-graphics
- RenderDoc - https://renderdoc.org
Introductory Overview Videos
- YouTube: How do Graphics Cards Work? by @BranchEducation
- YouTube: How Do Video Game Graphics Work? by @BranchEducation
- YouTube: How does Ray Tracing Work in Video Games and Movies by @BranchEducation
How to write a software rasterizer, renderer, ray tracer etc.
- Computer Graphics from Scratch
- Tiny RayTracer
- Tiny RayCaster
- Tiny Renderer
- Rasterization in One Weekend
- Ray Tracing in One Weekend book series
- by Peter Shirley, Trevor D Black, and Steve Hollasch
- Implementing a Tiny CPU Rasterizer
- Scratchapixel (slow web page, but still functional)
Graphics Pipeline and Architecture
- Graphics Pipelines for Young Bloods
- A Trip Through The Graphics Pipeline
- by Fabian “ryg” Giesen
- as cloned by Alain Galvan
- GPU Architectures
Youtube Channels:
- Acerola: https://www.youtube.com/@Acerola_t
- Sebastian Lague: https://www.youtube.com/@SebastianLague, particularly his series on Raytracing
- Freya Holmer: https://www.youtube.com/@acegikmo, particularly her Video Essays & Recent Talks
- Cem Yuksel: Series on Interactive Computer Graphics