Home

Awesome

Graphics Programming Resources

A hand-picked list of graphics programming resources maintained by graphics programming virtual meetup attendees.

Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <details> <summary>Table of Contents</summary> </details> <!-- END doctoc generated TOC please keep comment here to allow auto update -->

Beginner friendly

Here is a list of resources suitable for beginners, though intermediate or advanced folks can also benefit from them.

Meta-links

Resources that curate other resources. Some meta links are omitted here if they are mentioned in other categories.

Overview

Books

Courses

Advice

Math

Tutorials

Books

Homogeneous Coordinate

Rotation

Quaternions

Linear Algebra / Matrices

Geometric Algebra

Curves and Surfaces

Implementing Math Library

Circular/Spherical harmonics

Geometry

Ray Tracing

Intro to Ray Tracing

Ray Tracing Books

Ray Tracing Courses

Algorithms

BVH

Sampling & Variance Reduction

Intersection

Denoising

GPU Ray Tracing

See also APIs

Rasterization

Graphics Pipeline

Shading Techniques

Culling

Depth Buffer

Software Rasterization

Graphics Effects

Normal Mapping

Hash Functions

-PCG Family of Hash Functions - Hash Functions for GPU Rendering

Dithering

-Dithering on the GPU - Dithering for aesthetic purposes. -Anisoptera Games - How to Fix Color Banding with Dithering - Dithering for functional purposes (fixing color banding on gradients).

Shadow

Ambient Occlusion

Reflection

Transparency

Ray Marching and SDF

Line, Edge, and Outline Drawing

Triangulated line

Outline

Text Rendering

Tessellation

Voxel Rendering

Volume Rendering

Dithering

Sprite Rendering

Atmosphere Scattering

Grass Rendering

PBR

See also Assets/Materials for PBR materials

<!-- markdown-link-check-disable-next-line -->

Textures

Mipmapping

Texture Compression

Texture Bombing

Shader Programming

Compute

Introduction to compute shader

GPU Architecture

<!-- markdown-link-check-disable-next-line -->

Parallel Algorithms

Atomics

Color, HDR, and Tone Mapping

Sampling and anti-aliasing

See also Ray Tracing/Sampling & Variance Reduction

Animation

Geometry

Geometry representations

Iso-surface methods

Libraries

Physics and Simulation

Physics-Based Animation

Attractors

Optics

APIs

Ray Tracing API

OpenGL

Tutorials

Meta-links

Best Practices

Vulkan

Tutorials

Meta-links

Swapchain & frame resources<!-- markdown-link-check-disable-next-line -->

Renderpass & Dynamic Rendering

Bindless/Descriptor indexing

Synchronization

Vulkan Compute

Libraries

Performance Best Practice

Others

DirectX 12

Resource Binding & Bindless

WebGL

WebGPU

Tutorials

System Design

Renderer Architecture

GPU-driven rendering

Scene Description

General Programming

Meta-links

Engine Development

Performance Optimization

High-level Programming

Game loop

Floating-point numbers

Memory Allocation & Management

Tools/libraries

Debuggers

Profilers

A bunch of graphics debuggers above also have profiling capabilities.

Denoiser

Assets

Polygonal Model & Scene

Materials

Voxel Data