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.

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.


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

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

Simon Coenen game programmer

Adrian Courrèges @NVIDIA

Nick McDonald

real world technologies

Thomas’ blog

Daniel Holden

Daniel Meister, Sr. Software Engineer at AMD Japan Co. Ltd.

Christopher Kulla’s Homepage. Principal Rendering Programmer @EpicGames

ROBERTO ZICHE. Graphic Domain Expert at Autodesk.

humus (Recommended)

Léna Piquet. Senior Product Manager and Technical Artist at Adobe.

Leif Erkenbrach’s programming blog

Max Slater. Computer Graphics, Programming, and Math

Adam Sawicki. Developer Technology Engineer at AMD.

Moments in Graphics. A blog by Christoph Peters

Learning Modern 3D Graphics Programming - NicolBolas (Recommended)

Choi Jae Ho

Hi, I am Chetan Jaggi and I am working in the field of Game & Graphics. I also take on projects as a freelancer.

J Stephano

Glossary of computer graphics

Glossary of computer graphics


McGuire Computer Graphics Archive


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

CS184 Computer Graphics, Fall 2012

Computer Graphics at TU Wien (Recommended)

Computer Graphics from Scratch demystifies the algorithms used in modern graphics software with basic programming and high school math.

Cem Yuksel (Recommended)

How do Video Game Graphics Work? (Recommended)

Tutorials - GPU Architecture

GPU architecture types explained

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

How to Code Minecraft

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

Shader Basics Tutorial (no code)

Tutorials - OpenGL Learning

Learn OpenGL

Deferred Shading

3D Game Shaders For Beginners (Recommended)

How to Start Learning Computer Graphics Programming


A guide to using modern OpenGL functions.

Source code of OpenGL tutorials on

Tutorials - DirectX

This repository is intended to be used as a code repository for learning DirectX 12.

Tutorials - Metal

Swift 3D Game Tutorial
The resources and source code for my Youtube series on creating a game engine using Apple’s Metal Api

Tutorials - WebGL

WebGL lessons that start with the basics

Tutorials - WebGPU

Curated list of awesome things around WebGPU ecosystem.

Linux: Compile C++ to WebAssembly and JavaScript using Emscripten and CMake (Recommended)

I want to talk about WebGPU

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.

Source Code for “Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, an OptiX” by Adam Marrs, Peter Shirley, and Ingo Wald

Getting Started With DirectX Raytracing

Path tracing workshop

Tutorials - GPU Hacking

Hacking GCN via OpenGL (Recommended)


Documents - Comprehensive

Intel Resources for Game Developers

Shading techniques and GLSL snippets

Valve’s documents of game development

Documents - Vulkan

Awesome Vulkan ecosystem

Why do we need SPIR-V?

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 - Compute Shader

Rendering Particles with Compute Shaders

Documents - AMD

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


Papers - Collections


Hugues Hoppe

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

A High-Performance Software Graphics Pipeline Architecture for the GPU

SIGGRAPH 2021 Rendering Engine Architecture course

Papers - Ray Tracing

Efficient GPU Screen-Space Ray Tracing (Recommended)

Neural Partitioning Pyramids for Denoising Monte Carlo Renderings

Papers - Indirect Illumination

Virtual Blue Noise Lighting

Source Code for HPG 2022 Paper “Virtual Blue Noise Lighting”

Papers - NeRF (Neural Radiance Fields)

NeRF, Representing Scenes as Neural Radiance Fields for View Synthesis

PlenOctrees, For Real-time Rendering of Neural Radiance Fields

Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields

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

Plenoxels: Radiance Fields without Neural Networks

Code release for NeRF (Neural Radiance Fields)

Papers - Geometry - Nanite

Brief Analysis of Nanite

Papers - Enhancing Photorealism Enhancement

A 3D generative design space where form follows information.
Enhancing Photorealism Enhancement
Enhancing Photorealism Enhancement
Code & Data for Enhancing Photorealism Enhancement
Enhancing Photorealism Enhancement

Papers - Wave Optics

A Generalized Ray Formulation For Wave-Optics Rendering

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.

Construct 3. Modern. Highly capable. Versatile. This is the all-in-one tool to build and ship your games globally.

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

Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.

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

Nebula is an open-source and free-to-use modern C++ game engine.

The Microsoft Game Development Kit (GDK) contains the common tools, libraries, and documentation needed to build games for the Xbox App on Windows 10, Xbox Game Pass for PC, Xbox consoles (Xbox Series X|S, Xbox One), and Xbox Game Pass cloud gaming.

An open source game engine in active development (Recommended)

Graphics engine written in C++/DirectX12 (Recommended)

the thin c++ game engine

Kruger Prototype Game Engine. Kruger is a game engine framework, basically an engine without a renderer. It contains a lot of the boilerplate machinery required for resource management, serialization, gameplay, etc.

Skylicht Engine is C++ Game Engine based on Irrlicht 3D. We have upgraded to more features. Cross-Platform Framework (Android, IOS, UWP, HTML5)

Castor3D is a 3D engine written in C++ 17. It works on Windows and GNU/Linux. It relies on Ashes as a rendering API, allowing Vulkan, Direct3D 11, and OpenGL. The project itself is compilable on supported platforms using CMake (\ref build).

Legion-Engine is a data oriented C++17 game engine built to make optimal use of modern hardware.

Hork Engine. Developed for Quake-style 3D games, but it is possible to create games of other genres.

CX3D is an easy to use Game Framework for the development of 3D Games in C++.

Razix is a High Performance Research Engine for production pipeline with emphasis on experimenting with different rendering techniques. Razix supports Windows, Mac, Linux, PSVita and PS3 systems.

A 3D game engine written in C++ with features like PBR, global illumination, procedural terrain generation, deferred rendering pipeline, and more!

Cross-platform 2D and 3D Game Engine written in C++ that supports both OpenGL and Vulkan.

Lina Engine is an open-source , modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.

A 3D game engine written in C++ with features like PBR, global illumination, procedural terrain generation, deferred rendering pipeline, and more!

Lina Engine is an open-source , modular, tiny and fast C++ game engine, aimed to develop 3D desktop games.

High Performance Research Engine for Production Pipeline

C++ open source 3D game engine

Cross-platform game engine with Vulkan backend

Rythe is a data-oriented C++17 game engine built to make optimal use of modern hardware.

Modern & multiplatform game engine in C++17

The AMD Render Pipeline Shaders (RPS) SDK is a comprehensive and extensible Render Graph framework. (Recommended)

Overload, 3D Game engine with editor

halley, a lightweight game engine written in modern C++

C++ Game Engine and Editor

GlistEngine is a cross platform OpenGL game engine written in C++

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

The official distribution of olcPixelGameEngine, a tool used in javidx9’s YouTube videos and projects

LÖVE is an awesome framework you can use to make 2D games in Lua. It’s free, open-source, and works on Windows, Mac OS X, Linux, Android and iOS. (Recommended)

Easy to use cross-platform 2D game library for C++

Game Source Porting

The Eternity Engine.

Simulator Engine


UNIGINE 2, Real-time 3D visualization SDK (C++/C#) for simulation & training.

Tools and Frameworks


A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

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

OpenGL Mathematics (GLM)

Highly Optimized Graphics Math (glm) for C

GLEW(source updated nightly) with Cmake and pre-generated sources (Recommended)
The OpenGL Extension Wrangler Library

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

ANGLE(Almost Native Graphics Layer Engine), 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.

Glide/DirectX implementation on D3D11/12

T&F - API Binding

Modern OpenGL binding for python

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

A Simple Spectral Renderer

Lighthouse 2 framework for real-time ray tracing

A modern cross-platform low-level graphics library and rendering framework.
DiligentFX is the Diligent Engine’s high-level rendering framework.
Sample projects demonstrating the usage of Diligent Engine

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

Mitsuba 2: A Retargetable Forward and Inverse Renderer

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

Rendering Engine using C++ and OpenGL

D3D12 Rendering Engine

Tiny OpenGL Wrapper / 3D Engine in C++

Multi-threaded DirectX12 renderer w/ HDR, PBR & Multi-monitor support

Mesa 3D graphics library, is an open-source software implementation of OpenGL, Vulkan, and other graphics API specifications.

Tempest is an open-source, simple, cross-platform graphics engine written in modern C++14. Main idea behind this engine is to provide a low-level GPU-programming concepts, like Ubo, Vbo, Ssbo, in convenient C++ packaging, with RAII, types and templates.

Castor3D is a 3D engine written in C++ 17. It works on Windows and GNU/Linux. It relies on Ashes as a rendering API, allowing Vulkan, Direct3D 11, and OpenGL. The project itself is compilable on supported platforms using CMake (\ref build).

Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.

OpenGL C++ Graphics Engine. The project is 3D graphics engine, focused on high-performance, low-overhead rendering with modern OpenGL & C++17.

Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.

High-Performance Rendering Framework on Stream Architectures (Recommended)
High-Performance Cross-Platform Monte Carlo Renderer Based on LuisaCompute

OpenGL/OpenGL ES/Vulkan/CUDA/OptiX Modular Rendering Framework for PC/Linux/Android (Recommended)
Nabla’s Tests and Examples source code

Cross platform toy render engine supporting physically based rendering and software ray tracing.

AnKi 3D Engine - Vulkan backend, modern renderer, scripting, physics and more

DiligentFX is the Diligent Engine’s high-level rendering framework.
A modern cross-platform low-level graphics API

This program definitely works on a Nvidia RTX 2080 Super GPU, and a Mali G710 GPU. Other Vulkan implementations may or may not support all the required features.

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.

Cross platform toy render engine supporting physically based rendering and software ray tracing

Tiny C++ Software Renderer / Rasterizer

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

The GPU Ray Tracing (GPURT) library is a static library (source deliverable) that provides ray tracing related functionalities for AMD drivers supporting DXR (DirectX 12®) and the Vulkan® RT API

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

NanoRT, single header only modern ray tracing kernel.

An example path tracer that runs on multiple ray tracing backends (Embree/DXR/OptiX/Vulkan/Metal/OSPRay)

Ray tracing engine, from scratch, in C++. (Recommended)

Physically-based CPU and GPU ray-tracer.

Gears-Vk, powerful low-level C++20 rendering framework for Vulkan 1.2, including Real-Time Ray Tracing (RTX) support, built atop Auto-Vk.

Experiments with software ray tracing. (Recommended)

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization (Recommended)

T&F - Path Tracing Render

A GLSL Path Tracer: A physically based path tracer that runs in a GLSL fragment shader. (Recommended)

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

AMD Radeon™ ProRender is a powerful physically-based path traced rendering engine that enables creative professionals to produce stunningly photorealistic images.

Hydra-enabled GPU path tracer that supports MaterialX and MDL

T&F - OpenGL

OpenGL Image (GLI)

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

Modern OpenGL renderer written in C++17

Low-level OpenGL 4.6 abstraction written in C++20. Fwog mitigates many of the weak points of OpenGL while providing a modern interface
Best Practices for Modern OpenGL

Framework for rapid OpenGL demos prototyping (Recommended)

T&F - DirectX

Personal hobby project to experiment with various rendering techniques.

XUSG, XU’s supreme graphics lib, is a handy wrapper currently for DirectX 12. It can be a good reference for designing your own DX12 wrapper APIs.

D3D12Renderer. Custom renderer and physics engine written from scratch in C++/Direct3D 12.

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 - Metal

Getting started with Metal-cpp

C++ Metal wrapper

A 3D Graphics Framework built on Apple’s Metal

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

GUI module for raylib. A simple and easy-to-use immediate-mode-gui library (Recommended)

Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

Node Editor using ImGui

A small, dependency-free node editor for dear imgui

Node graph implementation 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.

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

The smallest header-only GUI library(4 KLOC) for all platforms

Simple and Fast Graphical User Interface

File Dialog for Dear ImGui

FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.

Cross Platform File Dialog for Dear-ImGui

ImTui: Immediate Mode Text-based User Interface C++ Library

T&F - Rendering Library with GUI

A simple and easy-to-use library to enjoy videogames programming (Recommended)

A fast and minimalist 3D viewer. (Recommended)

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 - RHI(Rendering Hardware Interface) Framework

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.

NVRHI (NVIDIA Rendering Hardware Interface) is a library that implements a common abstraction layer over multiple graphics APIs (GAPIs): Direct3D 11, Direct3D 12, and Vulkan 1.2.(Recommended)

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

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

The official Allegro 5 git repository. Pull requests welcome!

NRI is a low-level abstract render interface which currently supports three backends: D3D11, D3D12 and Vulkan.

Keyword: multi-media
SFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python.

T&F - Rapid Prototyping

Cross-platform, graphics API agnostic, “Bring Your Own Engine/Framework” style rendering library.
A starter project for graphics applications using SDL, bgfx and Dear ImGui. The idea behind this repo is for it to be used as a minimal starting point for development of a game, demo or prototype.

A simple framework for rapid prototyping on Vulkan or Direct3D 12

NeverEngine, Rendering Engine to do quick graphics prototyping.

Graphics prototyping framework

two is an all-purpose c++ app prototyping library, focused towards live graphical apps and games.

Robust real-time rendering engine on DirectX 11 with many advanced graphics features for quick prototyping

dw-sample-framework. A simple C++ framework for implementing graphics technique samples using OpenGL or Vulkan.

bigg (bgfx + imgui + glfw + glm) + utils, is a prototype-oriented middleware library for 3D interactive applications.


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

T&F - Shader Compiler (Cross-Compiling)

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.(Recommended)

SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.(Recommended)

ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages.

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

Modern C++ swizzling header-only library

Library used to write shaders from C++, and export them in either GLSL, HLSL or SPIR-V.

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.

🇨🇭 A React renderer for Three.js
useful helpers for react-three-fiber

Minimal WebGL Library

BeautifulMakie, Makie is a high-performance, extendable, and multi-platform plotting ecosystem for the Julia programming language. For more examples go to the different menu sections. And the official documentation.

A post processing library that provides the means to implement image filter effects for three.js.

SSGI, Motion Blur, TRAA - Effects to enhance your three.js scene’s realism (Recommended)

VTK is an open-source software system for image processing, 3D graphics, volume rendering and visualization.

T&F - WebGPU (WebAssembly)

Where the GPU for the Web work happens!

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 - Textures & Maps

Fast ISPC Texture Compressor

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!

Betsy aims to be a GPU compressor for various modern GPU compression formats such as BC6H, purposedly written in GLSL so that it can be easily incorporated into OpenGL and Vulkan projects.

T&F - Volume Computation

Intel(R) Open Volume Kernel Library

T&F - Tracing & Profiling & Monitoring & Sighting

Android GPU Inspector (AGI) (Recommended)
Graphics API Debugger(Deprecated)

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 Graphics is a standalone developer tool with ray-tracing support that enables you to debug, profile, and export frames built with Direct3D, Vulkan, OpenGL, OpenVR, and the Oculus SDK.
Documents for Nsight Systems, also available for Nsight Graphis (Recommended)
The Peak-Performance-Percentage Analysis Method for Optimizing Any GPU Workload
NVIDIA Nsight Feature Spotlight: GPU Trace
Profiling GPU codes with Nsight

The NVIDIA® Nsight™ Perf SDK is a graphics profiling toolbox for DirectX, Vulkan, and OpenGL enabling you to collect GPU performance metrics directly from your application.

NVIDIA Nsight Aftermath. D3D12 or Vulkan game’s crash reporter to generate GPU “mini-dumps” when a TDR or exception occurs
Samples for the Nsight Aftermath SDK.

Nsight Compute Documentation
Training material for Nsight developer tools

Radeon™ GPU Analyzer, an offline compiler and performance analysis tool for DirectX®, Vulkan®, SPIR-V™, OpenGL®, and OpenCL™.
AMD RDNA™ 2 – Radeon™ GPU Profiler 1.10
How-To Use Radeon™ GPU Profiler

Intel® GPA (Graphics Performance Analyzers)

Intel® VTune™ Profiler. Find and Fix Performance Bottlenecks Quickly and Realize All the Value of Your Hardware

GPU Trace Visualizer

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

PIX on Windows, Performance tuning and debugging for DirectX 12 games on Windows
Tutorial: Using PIX to diagnose spikes in CPU frame time

A simple GPU shader memory operation performance test tool. Current implementation is DirectX 11.0 based.

Enoki: structured vectorization and differentiation on modern processor architectures.

PresentMon is a tool to capture and analyze ETW events related to swap chain presentation on Windows. It can be used to trace key performance metrics for graphics applications (e.g., CPU and Display frame durations and latencies) and works across different graphics APIs, different hardware configurations, and for both desktop and UWP applications.

C++ frame profiler, a real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.

microprofile is an embeddable profiler

C++ Profiler For Games

CPU scope based profiling library and browser based profile inspector with ImGui visualization

Orbit & Dive: C/C++ Performance Profiler (both for CPU and GPU) (Recommended)

T&F - Optimization Tools


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

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

The RAD Debugger is a native, user-mode, multi-process, graphical debugger. (Recommended)

T&F - Memory Tracing

Memory Tracing Software
Integrating Insomniac Games MemTrace Tool into Unreal Engine 4 – Part 2

T&F - Input

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

T&F - Assets Manager

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

stb single-file public domain libraries for C/C++

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

A simple demo to show off the capabilities of the Cauldron framework (Recommended)

Microsoft glTF SDK - A C++ Deserializer/Serializer for glTF

Rendering glTF scenes with ray tracer and raster (Vulkan)

A C++ OBJ Model Loader that will parse .obj & .mtl Files into Indices, Vertices, Materials, and Mesh Structures.

T&F - Computer Vision

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

FaceMeshFaceGeometry for FaceMesh

Research code for CVPR 2021 paper “End-to-End Human Pose and Mesh Reconstruction with Transformers”. MEsh TRansfOrmer is a simple yet effective transformer-based method for human pose and mesh reconsruction from an input image.

“Marker-less Augmented Reality” with OpenCV and OpenGL. (Recommended)

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

Vulkan video samples

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN, and ACNet.

T&F - Noise Algorithms

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

FastNoise2. Modular node graph based noise generation library using SIMD, C++17 and templates

A Perlin’s Simplex Noise C++ Implementation (1D, 2D, 3D)

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.

PixelOver is a software to transform your arts to pixel arts as best as possible, animate in realtime with pixel perfect transformations, bones and key animation system.

Animated sprite editor & pixel art tool (Windows, macOS, Linux)

SHMUP Creator allows you to make the Shoot ’em up of your dreams! As fun as a game, it is very simple but powerful enough to make professional Shmups.

Bitty Engine is an itty bitty game engine, with built-in editors, programmable in Lua.

GameGuru MAX is a 3D game-maker that makes the creation of your game simple, quick and easy – no coding required! With all the tools and assets you need in one place you can start making your dream game in minutes!

ModLab. ModLab is a free tool that can generate and fine tune normal maps in a realtime rendering environment.

T&F - Subset (font, glyph)

ImGuiFontStudio is a tool for Subset font and extract glyph names for use embbeded or not in a software, especially for use with ImGui for embedded way.

MSDF font atlas generator

T&F - GPU Font

Single-header minimalistic pragmatic GPU font rendering library.

T&F - Text Shaping

HarfBuzz text shaping engine

T&F - Super Resolution

AMD FidelityFX Super Resolution (FSR) is an open source, high-quality solution for producing high resolution frames from lower resolution inputs.

T&F - Space Partitioning Algorithm

A C implementation for creating 2D voronoi diagrams

OpenFrameworks wrapper of Voro++ that do 3D Voronoi Tessellation

T&F - Vector Graphics (2D Graphics, Motion Graphics)

An efficient vector-graphics renderer

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

Tooll 3 is an open source software to create realtime motion graphics.

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

Simple Software Render

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.

Personal hobby project to experiment with various rendering techniques.

Examples - OpenGL

OpenGL 3 and 4 with GLSL

A Small OpenGL Based Renderer(Recommended)

Decent looking grass in opengl that still maintaines decent performance.

可编程渲染管线实现,帮助初学者学习渲染 (Recommended)

OpenGL support library so you can just dive in and write OpenGL code

Collection of examples for OpenGL: Perlin noise, ambient occlusion, shadow mapping, water reflection and others (Recommended)

A ready to use cmake skeleton using GLFW, Glew and glm. include WebAssembly example

OpenGL Demo: Simulating Ocean Waves with FFT

Examples - Vulkan

Examples and demos for the new Vulkan API.(Recommended)

Deferred Vulkan rendering playground using Crytek’s Sponza scene.(Recommended)

A Vulkan sample that demonstrates an integration of Ray Traced Shadows, Ambient Occlusion, Reflections and Global Illumination into a Deferred Rendering Pipeline.(Recommended)

Makma is a deferred Vulkan renderer written in C++.(Recommended)

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

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

The Stardust sample application uses the Vulkan graphics API to efficiently render a cloud of animated particles.

Vulkan app demonstrating glTF 2.0 Morph Targets (Blend shapes)

Examples - Metal

A simple 3D engine written in Swift + Metal, for educational purposes.

Examples - WebGL, WebGPU, WebAssembly

The WebGPU Samples are a set of samples and demos demonstrating the use of the WebGPU API.

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

Template to get started with WebGPU C++ -> Wasm projects (Recommended)

A ready to use cmake skeleton using GLFW, Glew and glm. include WebAssembly example

Examples - Ray Tracing

Simple Vulkan raytracing tutorials (Recommended)

Simple raytracer using DirectX Raytracing (DXR).

A (very) simple path tracer implemented using DirectX Ray Tracing (DXR)

A simple monte carlo path tracer implemented in C++

Realtime GPU Path Tracing engine based on OpenCL and OpenGL. Pure GPU software implementation without hardware acceleration (no RTX etc.) (Recommended)

Examples - Path Tracing

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

GPU Pathtracer from scratch in C++/CUDA (Recommended)

Examples - Point Clouds

Rendering Point Clouds with Compute Shaders

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 - Universe

Real-time 3D visualization of space.

An n-body type simulation using GPU acceleration to simulate galaxies, galaxy collisions and expanding universes.

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 Development

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

A cross-platform, top-down 2D space shooter written in C using only system libraries.

Simple Pacman clone written in C99.

Examples - 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

Examples - Maze

Generate mazes of different shapes and arbitrary sizes using graph theory

Examples - Helper

shared source code and resources needed for the samples to run


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