https://develop--gpvm-website.netlify.app/resources/ GPVM * Resources * Blogroll * FAQ [ ] Categories * All Resources * Beginner Friendly * Overview * Course * Art * [ ] Color + Tone Mapping * CUDA * [ ] DX12 + Compute * [ ] Gamedev + Game Loop + Overview * [ ] Geometry + Data Structures * [ ] GPU Compute + Overview + Applications + Parallel Algorithms * [ ] Graphics Effects + [ ] Ambient Occlusion o SSAO + [ ] Line o Outline o Triangulated line + [ ] Shadows o Raytraced o Shadow Mapping * [ ] Math + Gamedev + Geometric algebra + Linear Algebra + Quaternions + Rotation * [ ] Metal + Compute * [ ] Numerics + Depth + Floating Point * OpenGL * [ ] PBR + Light Transport * [ ] Performance + API usage * [ ] Physical Simulation + Collision + Stability * [ ] Randomness + Denoising + Monte Carlo + [ ] Variance Reduction o Importance Sampling * [ ] Rasterization + Shading Techniques + Software Rasterization * [ ] Ray Tracing + Overview + Acceleration Structures + API + GPU + Hybrid Rendering + Next Event Estimation + Path Tracing + Whitted * Shader * [ ] System Programming + CPU Concurrency + Data-oriented design + Memory Management + Performance * [ ] Vulkan + Tutorials + Best Practices + Compute + Dynamic Rendering + Ray Tracing * WebGL * [ ] WebGPU + Tutorial + Compute * [ ] Assets + Materials + Models + Scenes * Tools Resources This page contains a collection of graphics programming and adjacent resources curated by our meetup attendees. New to graphics programming and don't know where to start? Check our curated beginner friendly resources. Want to add a resource? See guide for adding resources. Learn OpenGL Learn OpenGL is the definitive resource for learning real-time renderer techniques as beginners. Even though it is an OpenGL tutorial, it also teaches rendering techniques at the same time. * Beginner Friendly * OpenGL * Overview * tutorial * c++ * GLSL a smiling textured containers in OpenGL Ray Tracing in One Weekend series Series of online books teaching the basics of path tracing * Beginner Friendly * Ray Tracing/Overview * Ray Tracing/Path Tracing * book * tutorial * c++ [rtow-book1-final] CMU's introductory to Computer Graphics (2020) A comprehensive introduction to various topics in computer graphics * Beginner Friendly * Course * Overview * video * assignments * slides * c++ [15462] Dartmouth CS87 Rendering Algorithms The course nicely fills the gap between a Ray Tracing in One Weekend style toy renderer and a more general and fully-fledged renderer that PBRT describes * Course * Ray Tracing/Overview * assignments * slides * c++ [cs87-banner-f24] Physically Based Rendering: From Theory to Implementation Comprehensive reference on physically based rendering techniques * Ray Tracing/Overview * PBR/Light Transport * Randomness/Monte Carlo * book * c++ [pbrt] Tinyrenderer: Software rendering in 500 lines of bare C++ Writing a software rasterization from scratch to demonstrate how graphics APIs work. * Beginner Friendly * Rasterization/Software Rasterization * tutorial * c++ [tinyrenderer] The Graphics Codex Free book that contains chapters on physically-based shading and rendering, coding projects, and reference pages. * Overview * book * c++ [graphics-codex] UPenn CIS 5650 GPU Programming and Architecture (2025) A course that introduce GPU parallel programming with a Computer Graphics flavor * Course * CUDA * GPU Compute/Overview * video * assignments * slides * c++ [cis-5650] Vulkan Specification It is a good idea to keep it open while doing Vulkan programming * Vulkan * specification How to build a BVH Series A blog post series delving into building a BVH from scratch * Ray Tracing/Acceleration Structures * article * c++ [how_to_build_bvh] Best Practices for Modern OpenGL A guide about avoiding common programmer errors by using modern OpenGL (4.5+) * OpenGL * article VkGuide by Victor Blanco The goal of this guide is to understand Vulkan correctly, and act as a stepping stone for then working in your own projects. * Vulkan/Tutorials * tutorial * c++ [vkguide] 7.3 Bounding Volume Hierarchies | Physically Based Rendering PBRT book chapter on how to build a BVH * Ray Tracing/Acceleration Structures * article * c++ Lecture 18: Monte Carlo Rendering (CMU 15-462/662) An introduction to Monte Carlo ray tracing * Randomness/Monte Carlo * Ray Tracing/Path Tracing * video [15462-18] docs.gl An improvement of the official OpenGL documentation * OpenGL * specification Drawing Lines is Hard Summarizes the problem of GPU line primitives and explores a few different techniques for 2D and 3D triangulated line rendering, and accompany each with a small canvas demo. * Graphics Effects/Line/Triangulated line * article * GLSL [drawing_lines_is_hard] Game Programming Patterns A free online book covering design patterns commonly used in game development * Gamedev/Overview * book [gpp] Learn wgpu A tutorial for the WebGPU API using Rust and the wgpu library * WebGPU/Tutorial * tutorial * rust * WGSL [learn_wgpu] Learn OpenGL: Shadow Mapping Basic tutorial on shadow mapping * Graphics Effects/Shadows/Shadow Mapping * tutorial * c++ * GLSL [shadow_mapping_theory] Ray Tracing Gems Series Like other "gems" books, this series of books contains a collection of articles focused on ray tracing techniques for serious practitioners. It focuses on subjects commonly considered too advanced for introductory texts, yet rarely addressed by research papers. * Ray Tracing/Overview * book [rtg] The rendering equation The classic Kajiya rendering equation paper introduced the "rendering equation" and the path tracing algorithm * Ray Tracing/Path Tracing * PBR/Light Transport * Randomness/Monte Carlo * paper * classic [Kajiya] TU Wien: Vulkan Lecture Series (2021) Lecture series on Vulkan programming from TU Wien * Course * Vulkan/Tutorials * video * slides * c++ [tu_wien_vulkan] WebGL2 Fundamentals An introduction to 2D and 3D computer graphics using WebGL2 * WebGL * tutorial * GLSL * javascript WebGPU Fundamentals A series of lessons or tutorials about webgpu * WebGPU/Tutorial * tutorial * GLSL * javascript An Improved Illumination Model for Shaded Display This is Turner Whitted's original Ray Tracing paper * Ray Tracing/Whitted * paper * classic [whitted] Lecture 19: Variance Reduction (CMU 15-462/662) An overview various variance reduction techniques for Monte Carlo rendering, covering bidirectional path tracing, Metropolis-Hastings algorithm, MIS, stratified Sampling, low-discrepancy sampling, blue noise, photon mapping, and finite element radiosity * Randomness/Variance Reduction * Randomness/Monte Carlo * Ray Tracing * video WebGPU Specification The official WebGPU API specification * WebGPU * specification Instanced Line Rendering Part I Builds on the foundation from "Drawing Lines is Hard" and uses instance rendering to draw lines * Graphics Effects/Line/Triangulated line * article * GLSL * JavaScript [instance_line_rendering] 3D Math Primer for Graphics and Game Development The book focus on cover fundamental 3D math concepts for beginners * Beginner Friendly * Math/Gamedev * book [3d_math_primer] A Survey on Bounding Volume Hierarchies for Ray Tracing Excellent overview paper on BVH * Ray Tracing/Acceleration Structures * paper Book cover of Learn OpenGL, featuring a smiling textured containers in OpenGL Compute Shader Glossary A glossary of terms used in compute shader programming. Provides cross-API comparisons * GPU Compute/Overview * CUDA * DX12/Compute * Vulkan/Compute * Metal/Compute * WebGPU/Compute * article Game Loop - Game Programming Patterns Chapter from Game Programming Patterns explaining different design decisions for a game loop * Gamedev/Game Loop * Physical Simulation/Stability * article [game-loop-fixed] Instanced Line Rendering Part II: Alpha blending Continues instanced line rendering, introducing alpha-blending for triangulated lines. * Graphics Effects/Line/Triangulated line * article * GLSL * JavaScript Math For Game Devs (2020) Four part lecture on essential math for game developers by Freya Holmer * Beginner Friendly * Math/Gamedev * video * assignments [math_for_gamedev] Implementing a tiny CPU rasterizer Blog post series on implementing a CPU rasterizer from scratch * Rasterization/Software Rasterization * tutorial * c++ [tiny_cpu_rasterizer] Tone Mapping Introduces the theory of tone mapping and discusses commonly used tone mapping operators * Color/Tone Mapping * article Robust Monte Carlo Methods for Light Transport Simulation the Academy Award-winning Ph.D. thesis by Eric Veach. It starts from bidirectional light transport algorithms and introduces multiple importance sampling and Metropolis light transport * Ray Tracing/Path Tracing * PBR/Light Transport * Randomness/Monte Carlo * Randomness/Variance Reduction/Importance Sampling * paper * classic [veach_thesis] vk_mini_path_tracer A relatively small, beginner-friendly path tracing tutorial using Vulkan's ray tracing API * Vulkan/Ray Tracing * Ray Tracing/API * tutorial * c++ * GLSL [12-vk_mini_path_tracer] Advanced Global Illumination An advanced book focused on light transport theory for global illumination. * PBR/Light Transport * book Edge-Avoiding A-Trous Wavelet Transform for fast Global Illumination Filtering (2010) Classic paper introducing a fast and simple filter for ray tracing denoising. * Randomness/Denoising * Ray Tracing * paper * classic [atrous] Barycentric Coordinates An interactive introduction to barycentric coordinates. It starts with linear-interpolation and generalize it to triangles and higher-dimensions. * Math/Gamedev * article Rendering Resources | Benedikt Bitterli Scenes in Tungsten, Mitsuba, and pbrt-v4 formats * Assets/Models * Assets/Scenes * list Algorithms for Modern Hardware Free online book focusing on high-performance computing on CPU * System Programming/Performance * book Better Code: Concurrency - Sean Parent This talk uses the primitives supplied by C++14 to build a simple task system. It discussing the issues with usage of mutexes for shared data and introducing concurrent queues and thread pools * System Programming/CPU Concurrency * video * c++ Adventures in Hybrid Rendering (2021) A blog post on implementing a hybrid ray tracing rendering pipeline * Ray Tracing/Hybrid Rendering * article [adventures_in_hybrid_render] ambientCG Public Domain materials for Physically Based Rendering * Assets/Materials * list [ambientCG] Lecture 10: Meshes and Manifolds (CMU 15-462/662) Great overview, and also spend significant time on the half-edge data structure * Geometry/Data Structures * video [15462-10] Depth Precision Visualized A visual explanation of floating-point depth buffer precision, and introduces nonlinear depth mapping * Numerics/Depth * Numerics/Floating Point * article [depth_precision] What is direct lighting (next event estimation) in a ray tracer? An explanation of direct lighting and next event estimation in ray tracers * Ray Tracing/Next Event Estimation * Randomness/Variance Reduction/Importance Sampling * article [ps_nee] Data-Oriented Design This book is a fabulous read to get a deeper understanding of what data-oriented design is about. It goes beyond the often-mentioned cache misses, SOA, ECS, or anti-OOP rants. * System Programming/Data-oriented design * book Arseny Kapoulkine: Writing an efficient Vulkan renderer (2020) Best practices for writing a high-performance Vulkan renderer * Vulkan/Best Practices * Performance/API usage * article 5 ways to draw an outline Discussed 5 techniques for rendering an outline around an object * Graphics Effects/Line/Outline * article [five_ways_outline] Fix Your Timestep! (2004) Classic article on implementing a fixed timestep game loop for stable physics simulation. * Gamedev/Game Loop * Physical Simulation/Stability * article Gimbal lock confusion A stackoverflow answer on why the Gimbal lock occurs * Math/Gamedev * Math/Rotation * article Graphics Pipelines for Young Bloods Describes forward/defered shading techniques and various tradeoffs * Rasterization/Shading Techniques * article High-Performance Software Rasterization on GPUs (2011) A paper describing high-performance software rasterization techniques running on GPUs. * Rasterization/Software Rasterization * GPU Compute/Applications * paper Sascha Willems's How to Vulkan in 2026 A minimalist tutorial from Sascha Willems on how to use the Vulkan graphics API in 2026. The idea is to get people started with rasterization in Vulkan using commonly supported features to make the API easier to use. * Vulkan/Tutorials * tutorial * c++ Experiments in Hybrid Raytraced Shadows Explores combining rasterization and ray tracing for shadow rendering * Ray Tracing/Hybrid Rendering * Graphics Effects/Shadows/Raytraced * article [hybrid_raytraced_shadows] Immersive Linear Algebra Free online linear algebra book with fully interactive figures * Math/Linear Algebra * book [immersive_linear_algebra] John Chapman SSAO Tutorial (2013) A tutorial on implementing SSAO * Graphics Effects/Ambient Occlusion/SSAO * article [john_chapman_ssao] Learn OpenGL guest article: Cascaded Shadow Mapping Learn OpenGL guest article on cascaded shadow mapping, which resolves the resolution issues of the naive shadow mapping * Graphics Effects/Shadows/Shadow Mapping * article * GLSL [learnopengl_csm] Megakernels Considered Harmful: Wavefront Path Tracing on GPUs (2013) Introduced wavefront path tracing * Ray Tracing/GPU * paper * classic Memory allocation strategies article series A series of articles talking about custom memory allocators, starting from the simple arena allocators, to more complicated ones like the stack allocators, pool allocators, free list allocators, and finally buddy allocators. * System Programming/Memory Management * article [virtual_memory] NVIDIA Vulkan Ray Tracing Tutorials This repository provides a comprehensive learning resource for Vulkan ray tracing, featuring a progressive step-by-step tutorial that transforms a rasterization application into a fully functional ray tracing implementation * Vulkan/Ray Tracing * Ray Tracing/API * tutorial * c++ [nv_vk_raytracing_tutorial] Parallel Prefix Sum (Scan) with CUDA (2007) A classic reference on implementing a work-efficient parallel prefix sum algorithms * CUDA * GPU Compute/Parallel Algorithms * paper * classic Percentage-Closer Soft Shadows NVIDIA paper introducing Percentage-Closer Soft Shadows (PCSS), based on shadow mapping and percentage-closer filtering (PCF) * Graphics Effects/Shadows/Shadow Mapping * paper [PCSS] The Book of Shaders The author introduces shaders from an artistic perspective, and the book covers many topics that more engineering-focused resources such as "Learn OpenGL" won't cover. * Beginner Friendly * Shader * Art * book [thebookofshaders] TinyBVH Single-header zero-dependency BVH construction and traversal library * Ray Tracing/Acceleration Structures * Tools * repository * c++ Visualizing quaternions by 3blue1brown A great intereactive introduction/refresher for quaternions. It focuses on intuition rather than mathematical definitions * Math/Rotation * Math/Quaternions * article * video [visualizing_quaternions] VK_KHR_dynamic_rendering tutorial This tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan. It shows the steps required to load the extension, use it, and how it affects related components such as pipeline creation * Course * Vulkan/Dynamic Rendering * article * c++ [renderpass_in_trash] 3D Graphics Rendering Cookbook A book that covers and compares both the OpenGL and Vulkan APIs, while also covering various recipes about making a renderer. * Paid * Vulkan/Tutorials * OpenGL * book * c++ Foundations of Game Engine Development, Volume 1: Mathematics 1st Edition Introduces math routines with implementations. It also touches Grassman algebra * Paid * Math/Gamedev * Math/Geometric algebra * book Mathematics for Computer Graphics comprehensive range of mathematical techniques and problem-solving strategies associated with computer graphics * Paid * Math/Gamedev * book The Ray Tracer Challenge This book challenges you to build a Whitted-style ray tracer from scratch. Unlike many tutorials, it doesn't provide code and follows a unique test-first approach, describing only test specifications and algorithms. * Paid * Beginner Friendly * Ray Tracing/Whitted * book [ray-tracer-challenge] Real-time Collision Detection (2005) A good reference book on collision detection, collision response, and various acceleration data structures. * Paid * Physical Simulation/Collision * book (c) Graphics Programming Virtual Meetup. Built with Astro