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

Blogs

Mitsuba is a research-oriented rendering system in the style of PBRT, from which it derives much inspiration.
http://www.mitsuba-renderer.org/

Tuxedolabs Blog
http://blog.tuxedolabs.com/

Self Shadow
https://blog.selfshadow.com/

Wojciech Jarosz
https://cs.dartmouth.edu/~wjarosz/
https://github.com/wkjarosz/rendering-bib

http://taichi.graphics/
https://github.com/yuanming-hu/taichi

Matt Pharr
https://pharr.org/matt/

Institute of Computer Graphics and Algorithms, Vienna University of Technology, Austria.
https://users.cg.tuwien.ac.at

Realistic Graphics Lab(Switzerland)
https://rgl.epfl.ch/publications

Real-time Graphics R&D
http://www.iryoku.com/

Graphics Programmer at Rockstar North
http://www.aortiz.me/

Inigo Quilez
http://iquilezles.org/index.html

Nick Darnell's Blog, Tools, UI & Game Programmer, occasional blogger.
https://www.nickdarnell.com/

rastergrid
http://rastergrid.com/

INTERPLAY OF LIGHT
https://interplayoflight.wordpress.com

Paweł Dziepak
https://pdziepak.github.io/

Scratchapixel 2.0
https://www.scratchapixel.com

GurBu Technologies was co-founded by two experienced software developers.
https://gurbu.com/

Alex Tardif
http://alextardif.com/
https://twitter.com/longbool

Adam Marrs
http://visualextract.com/
https://twitter.com/acmarrs

Computer graphics projects by Morgan McGuire and friends.
https://casual-effects.com/
https://twitter.com/CasualEffects

Krzysztof Narkowicz
https://knarkowicz.wordpress.com/
https://twitter.com/knarkowicz

Balázs Török
http://morad.in/
https://twitter.com/m0radin

The Graphics codex
https://graphicscodex.com/

Wicked Engine Net
https://wickedengine.net/
https://twitter.com/turanszkij

Erik S. V. Jansson
https://eriksvjansson.net/
https://twitter.com/caffeineviking

Alan Zucconi
https://www.alanzucconi.com/

I3D is the leading conference for real time 3D computer graphics and human interaction.
http://i3dsymposium.github.io/2019/index.html

Glossary of computer graphics

Glossary of computer graphics
https://en.wikipedia.org/wiki/Glossary_of_computer_graphics

Tutorials

flipcode
https://www.flipcode.com/archives/articles.shtml

Game Engine Tutorials

Code-It-Yourself! 3D Graphics Engine Part #1 - Triangles & Projection
https://www.youtube.com/watch?v=ih20l3pJoeU
The official distribution of olcConsoleGameEngine, a tool used in javidx9's YouTube videos and projects
https://github.com/OneLoneCoder/videos

Shader Development Tutorials

The complete shader development course(Unity)
https://shaderdev.com/

Making it easier to work with shaders
https://github.com/shader-slang/slang

OpenGL Learning Tutorials

Learn OpenGL
https://learnopengl.com/

Deferred Shading
https://learnopengl.com/Advanced-Lighting/Deferred-Shading

3D Game Shaders For Beginners
https://github.com/lettier/3d-game-shaders-for-beginners

How to Start Learning Computer Graphics Programming
https://erkaman.github.io/posts/beginner_computer_graphics.html

opengl-tutorial
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/

Vulkan Tutorials

Vulkan Cookbook
https://github.com/PacktPublishing/Vulkan-Cookbook

API without Secrets: Introduction to Vulkan
https://github.com/GameTechDev/IntroductionToVulkan

Vulkan Best Practice for Mobile Developers
https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers

WebGL Tutorials

WebGL lessons that start with the basics
https://github.com/gfxfundamentals/webgl-fundamentals

Documents

Intel Resources for Game Developers
https://software.intel.com/gamedev

Documents - Vulkan

Awesome Vulkan ecosystem
https://github.com/vinjn/awesome-vulkan
http://www.vinjn.com/awesome-vulkan/

Documents - Rendering

Forward Rendering vs. Deferred Rendering
https://gamedevelopment.tutsplus.com/articles/forward-rendering-vs-deferred-rendering--gamedev-12342

The Computer Graphics Group of Charles University
https://cgg.mff.cuni.cz/

Advances in Real-Time Rendering in 3D Graphics and Games
http://advances.realtimerendering.com/

Practical Clustered Shading
http://www.humus.name/Articles/PracticalClusteredShading.pdf

A Primer On Efficient Rendering Algorithms & Clustered Shading.
http://www.aortiz.me/2018/12/21/CG.html

Clustered Forward vs Deferred Shading 7
http://www.yosoygames.com.ar/wp/2016/11/clustered-forward-vs-deferred-shading/

Papers

papers
https://drive.google.com/drive/folders/16A6Yj2esRTk0FP-ALr6XfxkGQvTb_1dD

Papers - Rendering

Clustered Deferred and Forward Shading
http://www.cse.chalmers.se/~uffe/clustered_shading_preprint.pdf Clustered Deferred and Forward Shading
http://advancedgraphics.marries.nl/presentationslides/09_clustered_deferred_and_forward_shading.pdf

Adaptively Sampled Distance Fields - Stanford Graphics
https://graphics.stanford.edu/courses/cs468-03-fall/Papers/frisken00adaptively.pdf

Papers - Machine Learning in Physical Animation

Try W&B to track machine learning experiments and visualize results
https://www.wandb.com/papers
AI Learns To Compute Game Physics In Microseconds
https://www.youtube.com/watch?v=atcKO15YVD8

Papers - Physics

Playing Pool with |ψi: from Bouncing Billiards to Quantum Search
https://arxiv.org/pdf/1912.02207.pdf

Game Engine

HTML5 Gameplay Framework

Phaser - HTML5 Game Framework
https://github.com/photonstorm/phaser

Phaser CE (Community Edition)
https://github.com/photonstorm/phaser-ce

GDevelop is an open-source, cross-platform game engine designed to be used by everyone.
https://github.com/4ian/GDevelop

Ultralight— lightweight, pure-GPU, HTML UI engine for desktop apps and games.
https://github.com/ultralight-ux/Ultralight

LLVM-to-Web

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

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.
http://xe-development.com/

C++ Game Engine

GZDoom adds an OpenGL renderer to the ZDoom source port.
https://github.com/coelckers/gzdoom

A multi-platform 2D game engine
https://github.com/nCine/nCine

GDevelop is an open-source, cross-platform game engine designed to be used by everyone.
https://github.com/4ian/GDevelop

The Derydoca Engine is a game engine and personal project of mine I am making available to anyone interested in it.
https://github.com/Derydoca/derydocaengine

Spartan Engine, Game engine with an emphasis on architectual quality, targeting high end machines.
https://github.com/PanosK92/SpartanEngine

Nazara Engine is a fast, complete, cross-platform, object-oriented API which can help you in your daily developper life.
https://github.com/DigitalPulseSoftware/NazaraEngine

Lightweight, multi-platform, data-oriented game engine.
https://github.com/polymonster/pmtech

Tools and Frameworks

Hardware Real-Time Rendering

High performance physically based renderer in C++11
https://github.com/tunabrain/tungsten

Intel Resources for Game Developers
https://github.com/GameTechDev

DirectX 11 Renderer written in C++11
https://github.com/vilbeyli/VQEngine

mbree: High Performance Ray Tracing Kernels
https://github.com/embree/embree

A simple realtime graphics playground for experimentations.
https://github.com/kosua20/Rendu

A Non-Euclidean Rendering Engine for 3D scenes.
https://github.com/HackerPoet/NonEuclidean

Checkerboard Rendering and Dynamic Resolution Rendering in the DX12 MiniEngine
https://github.com/GameTechDev/DynamicCheckerboardRendering

The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4
https://github.com/ConfettiFX/The-Forge

Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
https://github.com/LukasBanana/LLGL

A Simple Spectral Renderer
https://github.com/imallett/simple-spectral

A Vulkan-based translation layer for Direct3D 10/11 which allows running 3D applications on Linux using Wine.
https://github.com/Joshua-Ashton/d9vk

Lighthouse 2 framework for real-time ray tracing
https://github.com/jbikker/lighthouse2

A modern cross-platform low-level graphics library and rendering framework.
https://github.com/DiligentGraphics/DiligentEngine

The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4
https://github.com/ConfettiFX/The-Forge

A Vulkan-based translation layer for Direct3D 10/11 which allows running 3D applications on Linux using Wine.
https://github.com/doitsujin/dxvk

A physically based renderer which implements many state of the art techniques in light transport simulation, material modeling, sampling and reconstruction.
https://github.com/behindthepixels/EDXRay

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.
https://github.com/google/swiftshader

A highly optimized CPU software rasterizer, which implements most of the common D3D pipeline stages.
https://github.com/behindthepixels/EDXRaster

Offline Rendering

Global Illumination - Enlighten
https://www.siliconstudio.co.jp/middleware/enlighten/en/

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.
https://bellarender.com

Ray Tracing Render

Intel(R) Open Image Denoise library: High-Performance Denoising Library for Ray Tracing
https://github.com/OpenImageDenoise/oidn

Path Tracing Render

A GLSL Path Tracer
https://github.com/knightcrawler25/GLSL-PathTracer

MagicaVoxel. A free lightweight 8-bit voxel art editor and GPU based interactive path tracing renderer.
https://ephtracy.github.io/
Shaders for MagicaVoxel to simplify common and repetitive tasks.
https://github.com/lachlanmcdonald/magicavoxel-shaders
Generates isometric pixel art from MagicaVoxel .vox files
https://github.com/tommyettinger/IsoVoxel

Vulkan

a vulkan post processing layer
https://github.com/DadSchoorse/vkBasalt

SPIR-V

The SPIR-V Tools project provides an API and commands for processing SPIR-V modules.
https://github.com/KhronosGroup/SPIRV-Tools

Direct3D

A library containing utilities for mapping higher-level graphics work to D3D12
https://github.com/microsoft/D3D12TranslationLayer

Shader Compler

A collection of tools, libraries, and tests for Vulkan shader compilation.
https://github.com/google/shaderc

HTML5 & WebGL

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

A library to capture canvas-based animations at a fixed framerate
https://github.com/spite/ccapture.js

Looperepool, a tool to create looperinos
https://github.com/spite/looper

Google Chrome DevTools extension to live edit WebGL GLSL shaders
https://github.com/spite/ShaderEditorExtension

An image effects library for JavaScript using WebGL
https://github.com/evanw/glfx.js

基于HTML5原生WebGL实现的轻量级Google Earth三维地图引擎
https://github.com/iSpring/WebGlobe

Real-time path tracing with three.js
https://github.com/hoverinc/ray-tracing-renderer

Real-time PathTracing with global illumination and progressive rendering, all on top of the Three.js WebGL framework.
https://github.com/erichlof/THREE.js-PathTracing-Renderer

GPU for Web work

Where the GPU for the Web work happens!
https://github.com/gpuweb/gpuweb

WebGPU Samples
https://github.com/austinEng/webgpu-samples

Animation

Animation Compression Library
https://github.com/nfrechette/acl

Animation engine for explanatory math videos
https://github.com/3b1b/manim

A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT
https://github.com/alanjfs/sequentity

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.
https://github.com/rlguy/Blender-FLIP-Fluids

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

Physics - Flow

MantaPatch: Data-driven Synthesis of Smoke Flows with Cnn-based Feature Descriptors, Mengyu Chu and Nils Thuerey
https://github.com/RachelCmy/mantaPatch

A quick implementation of MLFLIP
https://github.com/kiwonum/mlflip

Textures & Maps

Fast ISPC Texture Compressor
https://github.com/GameTechDev/ISPCTextureCompressor

FastNoise is an open source noise generation library with a large collection of different noise algorithms.
https://github.com/Auburns/FastNoise

A D3D11 application for experimenting with Spherical Gaussian lightmaps
https://github.com/TheRealMJP/BakingLab

A Fast Texture Compressor for a variety of formats.
https://github.com/GammaUNC/FasTC

DirectXTex texture processing library
https://github.com/microsoft/DirectXTex

Create, manipulate, and optimize GIF images and animations
https://github.com/kohler/gifsicle

A C/C++ single-file library that minimizes the hard transition errors of disjoint edges in lightmaps.
https://github.com/ands/seamoptimizer

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

Mesh & Geomtry

The Polygon Mesh Processing Library
https://github.com/pmp-library/pmp-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.
https://github.com/google/draco

A fantasy map generator based on Martin O'Leary's “Generating fantasy map” notes
https://github.com/rlguy/FantasyMapGenerator

hmm. Heightmap meshing utility.
https://github.com/fogleman/hmm

Simple C++ geometry processing library.
https://github.com/libigl/libigl

Optimization

PresentMon
https://github.com/GameTechDev/PresentMon

MetricsGui
https://github.com/GameTechDev/MetricsGui

The Disney BRDF Explorer is an application that allows the development and analysis of bidirectional reflectance distribution functions (BRDFs)
https://github.com/wdas/brdf

PerfTest, GPU texture/buffer performance tester
https://github.com/sebbbi/perftest

The Radeon GPU Analyzer (RGA) is an offline compiler and code analysis tool for Vulkan, DirectX, OpenGL, and OpenCL.
https://github.com/GPUOpen-Tools/RGA

Tool for collection and processing of ETW events related to DXGI presentation.
https://github.com/GameTechDev/PresentMon

Enoki: structured vectorization and differentiation on modern processor architectures.
https://github.com/mitsuba-renderer/enoki

Editor & GUI

An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC
https://github.com/ddiakopoulos/tinygizmo

Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
https://github.com/ocornut/imgui

Node Editor using ImGui
https://github.com/thedmd/imgui-node-editor

A small, dependency-free node editor for dear imgui
https://github.com/Nelarius/imnodes

ImGui Example CMake Project
https://github.com/aid95/MinimalImGui

Dear ImGui over WebSockets
https://github.com/ggerganov/imgui-ws

Minimalistic GUI library for OpenGL
https://github.com/wjakob/nanogui

Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
https://github.com/memononen/nanovg

A simple and easy-to-use immediate-mode-gui library
https://github.com/raysan5/raygui

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.
https://github.com/littlevgl/lvgl

A single-header ANSI C gui library
https://github.com/vurtun/nuklear

Cross-Platform GUI Library
https://github.com/wxWidgets/wxWidgets

Input

Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch
https://github.com/jkuhlmann/gainput

Assets

glTF – Runtime 3D Asset Delivery
https://github.com/KhronosGroup/glTF

Header only C++11 tiny glTF 2.0 library
https://github.com/syoyo/tinygltf

Single-file glTF 2.0 parser written in C99
https://github.com/jkuhlmann/cgltf

Tiny but powerful single file wavefront obj loader
https://github.com/syoyo/tinyobjloader

Computer Vision

opencv4nodejs allows you to use the native OpenCV library in nodejs.
https://github.com/justadudewhohacks/opencv4nodejs

Painting

Semantic Image Synthesis with SPADE (GauGAN)
https://github.com/NVlabs/SPADE

Video

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.
https://github.com/bloc97/Anime4K

Library with GUI

A simple and easy-to-use library to enjoy videogames programming
https://github.com/raysan5/raylib

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.
https://github.com/martin-pr/possumwood

A small, portable and extensible C++ 3D coding framework
https://github.com/floooh/oryol

Memory

Easy to integrate Vulkan memory allocation library
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/

Easy to integrate memory allocation library for Direct3D 12
https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator

Demo & Example

Examples - Comprehensive Repository

UPenn CIS 565 Fall 2019 - GPU Programming
https://github.com/CIS565-Fall-2019

Examples - Software Rendering

3D Software Render Engine in 700 Lines !!
https://github.com/skywind3000/mini3d

A brief computer graphics / rendering course
https://github.com/ssloy/tinyrenderer
Tiny renderer or how OpenGL works: software rendering in 500 lines of code
https://github.com/ssloy/tinyrenderer/wiki

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.
https://github.com/michal-z/eneida

This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.
https://github.com/microsoft/DirectX-Graphics-Samples

Examples - WebGL

WebGL-GPU-Particles. 1 million+ particles being moved around on the GPU via WebGL.
https://github.com/soulwire/WebGL-GPU-Particles

Simulating depth of field with particles on a shader
https://github.com/Domenicobrz/Blurry

Examples - Vulkan

Examples and demos for the new Vulkan API
https://github.com/SaschaWillems/Vulkan

Yet Another Vulkan Engine
https://github.com/gan74/Yave

One stop solution for all Vulkan samples
https://github.com/KhronosGroup/Vulkan-Samples

Vulkan Samples Tutorials
https://github.com/BobLChen/VulkanDemos

Minimal Example of Using Vulkan for Compute Operations. Only ~400LOC.
https://github.com/Erkaman/vulkan_minimal_compute

Real-Time Hybrid Hair Rendering using Vulkan
https://github.com/CaffeineViking/vkhr

A Scene Viewer Rendered By Vulkan
https://github.com/enjiushi/VulkanLearn

Stardust
https://github.com/GameTechDev/stardust_vulkan

Examples - Ray Tracing

Simple raytracer using DirectX Raytracing (DXR).
https://github.com/michal-z/SimpleRaytracer

Examples - Path Tracing

This project is to create a CUDA accelerated Deep learning approach to denoise renders from a path tracer
https://github.com/Black-Phoenix/Ai-Path-Tracer-Denoiser

Examples - PBR

Image Based Lighting using DirectX 12.
https://github.com/michal-z/ImageBasedPBR

Examples - Lighting

Real-Time Rendering with Lighting Grid Hierarchy I3D 2019 Demo
https://github.com/DQLin/LGHDemo

Examples - Shadow

Adaptive Screen Space Ambient Occlusion
https://github.com/GameTechDev/ASSAO

Examples - Physics

A PIC/FLIP fluid simulation based on the methods found in Robert Bridson's “Fluid Simulation for Computer Graphics”
https://github.com/rlguy/GridFluidSim3D

Simple, single-file fluid solvers for learning purposes
https://github.com/tunabrain/incremental-fluids

Examples - Universe

Real-time 3D visualization of space.
https://github.com/CelestiaProject/Celestia

Examples - Camera

Bokeh Depth Of Field: A Physical Camera Effect created due to Focal Length, Aperture size, shape
https://github.com/Erfan-Ahmadi/BokehDepthOfField

Examples - Procedural Scene

An OpenGL 4 and C++ program which renders a procedural scene.
https://github.com/fede-vaccaro/TerrainEngine-OpenGL

Books

PAY $8 OR MORE
https://www.humblebundle.com/books/programming-packt-books

Books - Game Engine

Foundations of Game Engine Development
https://foundationsofgameenginedev.com/

Metal by Tutorials
https://store.raywenderlich.com/products/metal-by-tutorials

Books - Rendering

pbrt, Version 3
https://github.com/mmp/pbrt-v3

A simple parser for the PBRT file format
https://github.com/ingowald/pbrt-parser

GPU Zen 2: Advanced Rendering Techniques
https://www.amazon.com/GPU-Zen-Advanced-Rendering-Techniques/dp/179758314X/ref=sr_1_3?keywords=GPU+Zen+2 Example programs and source code for GPU Zen 2
https://github.com/wolfgangfengel/GPUZen2

Foundations of Game Engine Development, Volume 2: Rendering (July 26, 2019)
https://www.amazon.com/Foundations-Game-Engine-Development-Rendering/dp/0985811757

Structuring 3D Geometry based on Symmetry and Instancing Information
https://tel.archives-ouvertes.fr/tel-00379200/file/Martinet_07_PhD.pdf

Books - Shadow

Real-Time Shadows
https://www.amazon.com/Real-Time-Shadows-Elmar-Eisemann/dp/1568814380

Books - WebAssembly

Hands-On Game Development with WebAssembly
https://www.packtpub.com/game-development/hands-game-development-webassembly

Books - Image Processing

Digital Image Processing (4Th Edition)
https://www.amazon.com/Digital-Image-Processing-Rafael-Gonzalez/dp/9353062985

Books - Computer Vision

Computer Vision: A Modern Approach (2nd Edition)
https://www.amazon.com/Computer-Vision-Modern-Approach-2nd/dp/013608592X

Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library (1st Edition)
https://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/1491937998

HLSL Editor

Visual Studio Plugin

A Visual Studio extension that provides enhanced support for editing High Level Shading Language (HLSL) files.
https://github.com/tgjones/HlslTools

Shader Designer
https://docs.microsoft.com/en-us/visualstudio/designers/shader-designer


如果有一天我离开你了,别多想,只是因为我觉得你身边不缺我一个人。