- Learn How to Program with Graphics (optional)
- Code! Programming with P5.js
video
- Nature of Code
book
- Coding Train Challenges
practice
- Code! Programming with P5.js
- Overview of How Computers Work
- Learn C/C++
- How to Start C++ Development?
guide
- Learn Data Structures and Algorithms
tutorial
- C++ Reference
documentation
- Codewars
practice
- Advent of Code
practice
- How to Start C++ Development?
- Learn Mathematics for Graphics Programming
- Trigonometry
book
- Essence of Linear Algebra
article
video
- Vector Math for 3D Computer Graphics
book
- 3D Math Primer for Graphics and Game Development
book
- Immersive Linear Algebra
book
- Trigonometry
- Learn Software Raytracing & Rasterization (CPU Rendering)
- Computer Graphics from Scratch
book
- Ray Tracing in One Weekend
book
- Tiny Software Renderer
article
- Computer Graphics from Scratch
- Overview of How Computer Graphics Work
- Learn OpenGL (GPU Rendering)
- OpenGL Series
video
- Learn OpenGL
book
- Anton's OpenGL 4 Tutorials
book
- Best Practices for Modern OpenGL
article
- Guide to Modern OpenGL Functions
article
- DocsGL - OpenGL Documentation
documentation
- Graphics Programming Projects
practice
- The 20 Games Challenge
practice
- OpenGL Series
- Learn About GPU Architectures
- Graphics Pipelines for Young Bloods
article
- A Trip through the Graphics Pipeline
article
- GPU Architectures
slides
- Graphics Pipelines for Young Bloods
- Learn Vulkan (Low-Level GPU Rendering)
- How to make OpenGL usage Vulkan like
article
- Transitioning from OpenGL to Vulkan
article
- Vulkan Guide
book
- Vulkan Examples
example
- Keen Games Vulkan Backend Example
example
- How to make OpenGL usage Vulkan like
Physically Based Rendering
- Physically Based Rendering: From Theory to Implementation
book
- Physically Based Rendering in Filament
article
Path Tracing
- Daily Pathtracter
article
Ray Tracing
Data-Oriented Design
Design Patterns
- Game Programming Patterns
book
- Unresolved Forces
book
Performance
- Performance Ninja
book
course