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

Blogs

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/

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

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

Vulkan

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

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/

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 1011 which allows running 3D applications on Linux using Wine.
https://github.com/doitsujin/dxvk

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/

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

Research 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

Machine Learning

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

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

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/

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

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

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

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

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

Vulkan

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

Ray Tracing

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

Path Tracing

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

Shader Compler

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

SPIR-V

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

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

Animation

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

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

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

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

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

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

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

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

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

VOX format

Shaders for MagicaVoxel to simplify common and repetitive tasks.
https://github.com/lachlanmcdonald/magicavoxel-shaders

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

Video Games Programming

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

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

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

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

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

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

Raytracing

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

PBR

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

Lighting

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

Shadow

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

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

Unity Shader

A port of Evan Wallace’s “Water Demo” for WebGL to Unity.
https://github.com/shanecelis/water-demo

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

Universe

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

Camera

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

Books

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

Game Engine

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

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

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

Shadow

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

WebAssembly

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

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


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