keywords: Graphics, Shading, Shader, Rendering, Tools and Frameworks, Tutorials and Documents


Patricio Gonzalez Vivo

Mitsuba is a research-oriented rendering system in the style of PBRT, from which it derives much inspiration.

Tuxedolabs Blog

Self Shadow

Wojciech Jarosz

Matt Pharr

Institute of Computer Graphics and Algorithms, Vienna University of Technology, Austria.

Realistic Graphics Lab(Switzerland)

Real-time Graphics R&D

Graphics Programmer at Rockstar North

Inigo Quilez

Nick Darnell’s Blog, Tools, UI & Game Programmer, occasional blogger.



Paweł Dziepak

Scratchapixel 2.0

GurBu Technologies was co-founded by two experienced software developers.

Alex Tardif

Adam Marrs

Computer graphics projects by Morgan McGuire and friends.

Krzysztof Narkowicz

Balázs Török

The Graphics codex

Wicked Engine Net

Erik S. V. Jansson

Alan Zucconi

I3D is the leading conference for real time 3D computer graphics and human interaction.

Arseny Kapoulkine

Brian Karis (Technical Director - Graphics at Epic Games.)

Daniel Wright (Graphics Programming | Daniel Wright)

Bartosz Ciechanowski

Programming, Graphics, Gamedev, Exotic Computation, Audio Synthesis

High-Performance Graphics

3D Game Engine Programming

Bart Wronski, Graphics, machine learning, image and signal processing

He is a long-time computer graphics and GPU enthusiast, former graphics driver developer, API architect, telecommunication system designer, and award winning contributor to the Vulkan® and OpenGL® graphics API standards.

Ke-Sen Huang’s Home Page (SIGGRAPH)

This is the blog of Fabian “ryg” Giesen. I work at RAD Game Tools in Kirkland/WA as a programmer.

A collection of blogs, personas and publications that act as reference points for the latest developments in Computer Graphics.

The Danger Zone

Glossary of computer graphics

Glossary of computer graphics


Tutorials - Comprehensive


In this section, we cover every area of programming, including areas both directly and indirectly related to game development.

A trip through the Graphics Pipeline 2011: Index

Tutorials - Game Engine

Code-It-Yourself! 3D Graphics Engine Part #1 - Triangles & Projection
The official distribution of olcConsoleGameEngine, a tool used in javidx9’s YouTube videos and projects

Tutorials - Shader Development

The complete shader development course(Unity)

Making it easier to work with shaders

The Book of Shaders by Patricio Gonzalez Vivo & Jen Lowe

Tutorials - OpenGL Learning

Learn OpenGL

Deferred Shading

3D Game Shaders For Beginners

How to Start Learning Computer Graphics Programming


A guide to using modern OpenGL functions.

Tutorials - Vulkan

Vulkan Cookbook

API without Secrets: Introduction to Vulkan

Vulkan Best Practice for Mobile Developers

Vulkan Tutorial

基于 Vulkan 实现的 GPUImage

Niko Kauppi

Tutorials - WebGL

WebGL lessons that start with the basics

Tutorials - WebGPU

Curated list of awesome things around WebGPU ecosystem.

Tutorials - Path Tracing

A beginner-friendly Vulkan path tracing tutorial in under 300 lines of C++.

Tutorials - Ray Tracing

NVIDIA Vulkan Ray Tracing Tutorials: Ray tracing examples and tutorials using VK_KHR_ray_tracing.


Documents - Comprehensive

Intel Resources for Game Developers

Shading techniques and GLSL snippets

Documents - Vulkan

Awesome Vulkan ecosystem

Documents - Rendering

Forward Rendering vs. Deferred Rendering

The Computer Graphics Group of Charles University

Advances in Real-Time Rendering in 3D Graphics and Games

Practical Clustered Shading

A Primer On Efficient Rendering Algorithms & Clustered Shading.

Clustered Forward vs Deferred Shading 7

Documents - AMD

AMD’s Performance Guide is a nice collection of tips on how to program the GCN and RDNA architectures efficiently.


Papers - Collections


Papers - Comprehensive

Real-Time Large Crowd Rendering with Efficient Character and Instance Management on GPU.

Papers - Rendering

Clustered Deferred and Forward Shading Clustered Deferred and Forward Shading

Adaptively Sampled Distance Fields - Stanford Graphics

Real Shading in Unreal Engine 4 by Brian Karis, Epic Games

Papers - NeRF (Neural Radiance Fields)

NeRF, Representing Scenes as Neural Radiance Fields for View Synthesis

PlenOctrees, For Real-time Rendering of Neural Radiance Fields

Paper - Geometry

A fast algorithm for constructing Delaunay triangulations in the plane

Delaunay+Voronoi on a sphere

Papers - Machine Learning in Physical Animation

Try W&B to track machine learning experiments and visualize results
AI Learns To Compute Game Physics In Microseconds

Papers - Physics

Playing Pool with |ψi: from Bouncing Billiards to Quantum Search

A Hybrid Material Point Method for Frictional Contact with Diverse Materials

GPU Optimization of Material Point Methods

Game Engine

HTML5 Gameplay Framework

Phaser - HTML5 Game Framework

Phaser CE (Community Edition)

GDevelop is an open-source, cross-platform game engine designed to be used by everyone.

Ultralight— lightweight, pure-GPU, HTML UI engine for desktop apps and games.

LLVM-to-Web (WASM)

Esenthel Engine can run directly in a browser, no plugin required.
Following browsers are supported: Chrome, FireFox, Edge, Opera.

Provided as platform as a service Xe-Engine™ is a desktop grade game engine enabling the development of high quality gaming experiences from within the browser.

3D Game Engine

GZDoom adds an OpenGL renderer to the ZDoom source port.

GDevelop is an open-source, cross-platform game engine designed to be used by everyone.

The Derydoca Engine is a game engine and personal project of mine I am making available to anyone interested in it.

Spartan Engine, Game engine with an emphasis on architectual quality, targeting high end machines.

Nazara Engine is a fast, complete, cross-platform, object-oriented API which can help you in your daily developper life.

Lightweight, multi-platform, data-oriented game engine.

OGSR Project - Evolution of X-Ray Engine for STALKER: Shadow of Chernobyl

3D C++ Game Engine - yet another open source game engine

2D Game Engine

A multi-platform 2D game engine

2D physics engine for games

Repository for the Defold engine, editor and command line tools.

Flexible level editor

Game Source Porting

The Eternity Engine.

Tools and Frameworks

T&F - Translation Layer

A Vulkan-based translation layer for Direct3D 10/11 which allows running 3D applications on Linux using Wine.

A Vulkan-based translation layer for Direct3D 10/11 which allows running 3D applications on Linux using Wine.

A library containing utilities for mapping higher-level graphics work to D3D12

The implementation of OpenCL and OpenGL to DirectX 12 translation layers
Deep dive into OpenGL over DirectX layering

A conformant OpenGL ES implementation for Windows, Mac and Linux.

Layer providing Vulkan features when native support is unavailable

Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal & Vulkan

The Direct3D11-On-12 mapping layer

sokol, minimal cross-platform standalone C headers.

T&F - Hardware Real-Time Rendering

High performance physically based renderer in C++11

Intel Resources for Game Developers

DirectX 11 Renderer written in C++11

mbree: High Performance Ray Tracing Kernels

A simple realtime graphics playground for experimentations.

A Non-Euclidean Rendering Engine for 3D scenes.

Checkerboard Rendering and Dynamic Resolution Rendering in the DX12 MiniEngine

The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4

Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

A Simple Spectral Renderer

Lighthouse 2 framework for real-time ray tracing

A modern cross-platform low-level graphics library and rendering framework.

The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4

A physically based renderer which implements many state of the art techniques in light transport simulation, material modeling, sampling and reconstruction.

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS and WASM/WebGL

Cross-platform, graphics API agnostic, “Bring Your Own Engine/Framework” style rendering library.

Mitsuba 2: A Retargetable Forward and Inverse Renderer

Flux is a real-time PBR asset renderer, written with Vulkan.

Lightweight and modular C++11/C++14 graphics middleware for games and data visualization.

Rendering Engine using C++ and OpenGL

NeverEngine, Rendering Engine to do quick graphics prototyping.

T&F - Software Real-Time Rendering

SwiftShader is a high-performance CPU-based implementation of the OpenGL ES and Direct3D 9 graphics APIs. Its goal is to provide hardware independence for advanced 3D graphics.

A highly optimized CPU software rasterizer, which implements most of the common D3D pipeline stages.

T&F - Offline Rendering

Global Illumination - Enlighten

Bella is a next-generation physically-based render engine. Designed from a clean sheet, it aims to allow creation of the most beautiful rendered images yet seen.

Fluid simulation engine for computer graphics applications

A research-oriented renderer

LuxCoreRender is a physically correct, unbiased rendering engine. It is built on physically based equations that model the transportation of light.

T&F - Ray Tracing Render

Intel(R) Open Image Denoise library: High-Performance Denoising Library for Ray Tracing

NanoRT, single header only modern ray tracing kernel.

T&F - Path Tracing Render

A GLSL Path Tracer

MagicaVoxel. A free lightweight 8-bit voxel art editor and GPU based interactive path tracing renderer.
Shaders for MagicaVoxel to simplify common and repetitive tasks.
Generates isometric pixel art from MagicaVoxel .vox files

C-Ray is a small, simple path tracer written in C.

Real-time unidirectional GPU path tracer using the cross-vendor Vulkan ray-tracing extensions.

A GLSL Path Tracer

T&F - OpenGL

OpenGL Image (GLI)

Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.

T&F - Vulkan

a vulkan post processing layer

A modern and easy-to-use library for the Vulkan API

Project Island is an experimental, hot-reloading Vulkan renderer/proto-engine for Linux, written in C/C++.

A Vulkan renderer written from scratch on stream

T&F - DirectMedia Layer

SDL is Simple DirectMedia Layer.It is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.It can be used to make animations and video games.


The SPIR-V Tools project provides an API and commands for processing SPIR-V modules.

T&F - Shader Compiler

A collection of tools, libraries, and tests for Vulkan shader compilation.

This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

GLSL cross-compiler tool (GLSL->HLSL, MSL, GLES2, GLES3, GLSLv3), using SPIRV-cross and glslang

HLSL Decompiler forked from 3Dmigoto

Making Rust a first-class language and ecosystem for GPU code

T&F - Visual Effects

Libraries for visual effects software development

T&F - Pipeline

Gaffer is a node-based application for lookdev, lighting and automation

T&F - HTML5 & WebGL

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Explore and Troubleshoot your WebGL scenes (All engines and Vanilla script support) with ease.

A library to capture canvas-based animations at a fixed framerate

Looperepool, a tool to create looperinos

Google Chrome DevTools extension to live edit WebGL GLSL shaders

An image effects library for JavaScript using WebGL

基于HTML5原生WebGL实现的轻量级Google Earth三维地图引擎

Real-time path tracing with three.js

Real-time PathTracing with global illumination and progressive rendering, all on top of the Three.js WebGL framework.

Minimal WebGL Library

T&F - WebGPU

Where the GPU for the Web work happens!

WebGPU Samples

T&F - Animation

Animation Compression Library

Animation engine for explanatory math videos

A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT

T&F - Physics

FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

Open source C++ physics engine library in 3D

T&F - Physics - Flow

MantaPatch: Data-driven Synthesis of Smoke Flows with Cnn-based Feature Descriptors, Mengyu Chu and Nils Thuerey

A quick implementation of MLFLIP

Real-time fluid simulation engine running on GPU with Vulkan

SPlisHSPlasH is an open-source library for the physically-based simulation of fluids.

T&F - Textures & Maps

Fast ISPC Texture Compressor

FastNoise is an open source noise generation library with a large collection of different noise algorithms.

A D3D11 application for experimenting with Spherical Gaussian lightmaps

A Fast Texture Compressor for a variety of formats.

DirectXTex texture processing library

Create, manipulate, and optimize GIF images and animations

A C/C++ single-file library that minimizes the hard transition errors of disjoint edges in lightmaps.

A C/C++ single-file library for drop-in lightmap baking. Just use your existing OpenGL renderer to bounce light!

T&F - Mesh & Geomtry

The Polygon Mesh Processing Library

Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

A fantasy map generator based on Martin O’Leary’s “Generating fantasy map” notes

hmm. Heightmap meshing utility.

Simple C++ geometry processing library.

An Open-Source subdivision surface library.

Infrastructure for solid modeling.
The libfive shared library contains functions to build, manipulate, and render f-reps. A great deal of work has gone into the meshing algorithm, which produces watertight, manifold, hierarchical, feature-preserving triangle meshes.

Computational geometry and spatial indexing on the sphere

T&F Modeling Tools

Dust3D is a cross-platform open-source 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one.
Automatic quad remeshing tool

T&F - Volume Computation

Intel(R) Open Volume Kernel Library

T&F - NeRF (Neural Radiance Fields)

PlenOctree Volume Rendering (supports CUDA & fragment shader backends), NeRF(Neural Radiance Fields)

Code release for NeRF (Neural Radiance Fields)

T&F - Sighting & Monitoring

RenderDoc is a free MIT licensed stand-alone graphics debugger that allows quick and easy single-frame capture and detailed introspection of any application using Vulkan, D3D11, OpenGL & OpenGL ES or D3D12 across Windows 7 - 10, Linux, Android, Stadia, or Nintendo Switch™.
[UE4] Let’s debug the shader with RenderDoc

NVIDIA® Nsight™ Visual Studio Edition is an application development environment for heterogeneous platforms which brings GPU computing into Microsoft Visual Studio. NVIDIA Nsight™ VSE allows you to build and debug integrated GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
Samples for the Nsight Aftermath SDK.

Intel® GPA (Graphics Performance Analyzers)

GPU Trace Visualizer

Tools for tracing OpenGL, Direct3D, and other graphics APIs.

T&F - Optimization



The Disney BRDF Explorer is an application that allows the development and analysis of bidirectional reflectance distribution functions (BRDFs)

PerfTest, GPU texture/buffer performance tester

The Radeon GPU Analyzer (RGA) is an offline compiler and code analysis tool for Vulkan, DirectX, OpenGL, and OpenCL.

Tool for collection and processing of ETW events related to DXGI presentation.

Enoki: structured vectorization and differentiation on modern processor architectures.

C++ frame profiler

Pixyz provides the best-in-class Tessellator, creating prefect mesh from any CAD/3D data fast and efficiently.

T&F - Debugging

C++ library for debugging HLSL & GLSL shaders

Modern C++ swizzling header-only library

T&F - Editor & GUI

An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC

Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies

Node Editor using ImGui

A small, dependency-free node editor for dear imgui

ImGui Example CMake Project

Dear ImGui over WebSockets

Minimalistic GUI library for OpenGL

Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.

A simple and easy-to-use immediate-mode-gui library

Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.

A single-header ANSI C gui library

Cross-Platform GUI Library

Advanced 2D Plotting for Dear ImGui.

Cross platform C++ libraries

You can use goxel to create voxel graphics (3D images formed of cubes).

A single-header ANSI C immediate mode cross-platform GUI library

T&F - Input

Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch

T&F - Assets

glTF – Runtime 3D Asset Delivery

Header only C++11 tiny glTF 2.0 library

Single-file glTF 2.0 parser written in C99

Tiny but powerful single file wavefront obj loader

A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0

T&F - Computer Vision

opencv4nodejs allows you to use the native OpenCV library in nodejs.

FaceMeshFaceGeometry for FaceMesh

T&F - Painting

Semantic Image Synthesis with SPADE (GauGAN)

T&F - Video & Image Processing

Anime4K is a state-of-the-art*, open-source, high-quality real-time anime upscaling algorithm that can be implemented in any programming language, anywhere.

An open source iOS framework for GPU-based image and video processing

T&F - Library with GUI

A simple and easy-to-use library to enjoy videogames programming

Possumwood is a graph-based procedural authoring tool, in concept not dissimilar to popular CG packages like Houdini, Blender or Maya. It is intended to serve as a sandbox for computer graphics algorithms and libraries, providing a user-friendly and coding-free UI for libraries that would otherwise be inaccessible for an average user.

A small, portable and extensible C++ 3D coding framework

T&F - Memory

Easy to integrate Vulkan memory allocation library

Easy to integrate memory allocation library for Direct3D 12

T&F - Noise Algorithms

Fast C++ Noise Library


Demo showing how to use the-forge with a with your own windowing, input and application loop.

T&F - GameDev

A collection of open source c/c++ libraries for gamedev

The Best in Game Development Technology! Here at RAD, we make video game development tools.

T&F - GPU Font

Single-header minimalistic pragmatic GPU font rendering library.

Demo & Examples

Examples - Comprehensive Repository

UPenn CIS 565 Fall 2019 - GPU Programming

GPUOpen Effects

Computer Graphics at the Philadelphia University.

Examples - Software Rendering

3D Software Render Engine in 700 Lines !!

A brief computer graphics / rendering course
Tiny renderer or how OpenGL works: software rendering in 500 lines of code

Examples - Direct3D

Experimental demoscene project. C99 and Direct3D 12. Fully standalone, zero dependencies (no Visual Studio, no Windows SDK, no CRT, no #include usage). C and HLSL compilers included.

This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.

Examples - WebGL

WebGL-GPU-Particles. 1 million+ particles being moved around on the GPU via WebGL.

Simulating depth of field with particles on a shader

Play with fluids in your browser (works even on mobile)

Fluid Particles

Examples - Vulkan

Examples and demos for the new Vulkan API

Yet Another Vulkan Engine

One stop solution for all Vulkan samples

Vulkan Samples Tutorials

Minimal Example of Using Vulkan for Compute Operations. Only ~400LOC.

Real-Time Hybrid Hair Rendering using Vulkan

A Scene Viewer Rendered By Vulkan


Chewman is a 3D pacman-style game written in C++ using Vulkan SDK and SDL

Vulkan app demonstrating glTF 2.0 Morph Targets (Blend shapes)

Examples - Ray Tracing

Simple raytracer using DirectX Raytracing (DXR).

Examples - Path Tracing

This project is to create a CUDA accelerated Deep learning approach to denoise renders from a path tracer

Examples - PBR

Image Based Lighting using DirectX 12.

Examples - Lighting

Real-Time Rendering with Lighting Grid Hierarchy I3D 2019 Demo

Examples - Shadow

Adaptive Screen Space Ambient Occlusion

Examples - Physics

A PIC/FLIP fluid simulation based on the methods found in Robert Bridson’s “Fluid Simulation for Computer Graphics”

Simple, single-file fluid solvers for learning purposes

Examples - Universe

Real-time 3D visualization of space.

Examples - Camera

Bokeh Depth Of Field: A Physical Camera Effect created due to Focal Length, Aperture size, shape

Examples - Procedural Scene

An OpenGL 4 and C++ program which renders a procedural scene.

Open source “Minecraft-like” game with multiplayer support.
Lets Code A Voxel Game in C++ and OpenGL - World Generation I

Examples - Gameplay Dev

Battle City (NES) — 2-player (over TCP/IP) remake in C. Co-op version of the classic NES game, written in C using SDL.

Example - Fur & Hair

DirectX 12 and Vulkan libraries that provide convenient access to realistically rendered and simulated hair and fur.

Examples - OpenCV

OpenCV integration with UE 4.19. In progress

Examples - Abient Occlusion

Compute AO per vertex using Embree.

Examples - Tone Mapping & Gamut Mapping

FidelityFX LPM


Books - Bundle


Books - Game Engine

Foundations of Game Engine Development

Metal by Tutorials

Books - Rendering

pbrt, Version 3

A simple parser for the PBRT file format

minipbrt, A simple and fast parser for PBRT v3 files.

GPU Zen 2: Advanced Rendering Techniques
Example programs and source code for GPU Zen 2

Foundations of Game Engine Development, Volume 2: Rendering (July 26, 2019)

Structuring 3D Geometry based on Symmetry and Instancing Information

The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer (Pragmatic Bookshelf) 1st Edition

Books - Shadow

Real-Time Shadows

Books - WebAssembly

Hands-On Game Development with WebAssembly

Books - Image Processing

Digital Image Processing (4Th Edition)

Books - Computer Vision

Computer Vision: A Modern Approach (2nd Edition)

Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library (1st Edition)

Shader (HLSL / GLSL) Editor

Visual Studio Plugin

A Visual Studio extension that provides enhanced support for editing High Level Shading Language (HLSL) files.

Shader Designer

Desktop IDE for HLSL and GLSL

Lightweight, cross-platform & full-featured desktop IDE for HLSL and GLSL shaders

Game Source

RTS Game Source

command and conquer remastered Collection