- How to Program with Graphics (optional)
- Code! Programming with p5.js
video - Nature of Code
book - Coding Challenges
practice
- Code! Programming with p5.js
- How Computers Work
- How does Computer Hardware Work?
video - How do Transistors Work?
video - How do CPUs Work?
video - How does Computer Memory Work?
video
- How does Computer Hardware Work?
- C/C++
- How to Start C++ Development?
guide - C++ Reference
documentation - Codewars
practice - Advent of Code
practice
- How to Start C++ Development?
- Learn Mathematics for Graphics Programming
- Software Raytracing & Rasterization (CPU Rendering)
- Computer Graphics from Scratch
book - Ray Tracing in One Weekend
book - Tiny Software Renderer
article
- Computer Graphics from Scratch
- How Computer Graphics Work
- OpenGL (High-Level 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 - HybridRenderingEngine
example
- OpenGL Series
- GPU Architectures
- Graphics Pipelines for Young Bloods
article - A Trip through the Graphics Pipeline
article - GPU Architectures
slides
- Graphics Pipelines for Young Bloods
- 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
bookvideocourse - Optimizing Software In C++
book - Optimizable Code
article