Skip to content

Gforcex/OpenGraphic

Repository files navigation

OpenGraphic

Graphic Engine & Game Engine open source list!

Contents

Official

Official

Engine

Engine    EnginePlugin    OfflinePathTracing    RealTimePathTracing    SoftRenderer    RenderingDesign

Rendering

GI    VolumeRendering    PostProcessing    Stylize    Transparency    VFX    Standard Format

Emulation

Material    Environment       Camera

Optimization

Acceleration    SpatialDataStructures    RenderPath

Util

Util    SDF    Math    Image&Color    Noise    Mesh    Platform    UI

Tools

Tools

Tutorial

SDK&Tutorial

Other

Physics    Animation    Particle   


Official

Engine

Engine Plugin

  • Graphics Unity Graphics - Including Scriptable Render Pipeline
  • armory -3D Game Engine for Blender
  • RenderPipeline -PBR and Deferred Rendering for the Panda3D game engine
  • ray-mmd physically-based rendering at mikumikudance

Platform

  • bgfx ⭐ -Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library
  • igl Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan).
  • The-Forge The Forge Cross-Platform Rendering Framework PC, macOS / iOS, Android, XBOX, PS4
  • DiligentEngine A modern cross-platform low-level 3D graphics library http://diligentgraphics.com/diligent-engine/
  • MethaneKit Modern 3D graphics made simple with C++17 cross-platform framework and rendering abstraction API on top of DirectX 12, Metal & Vulkan
  • LLGL Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
  • nvrhi NVIDIA Rendering Hardware Interface
  • herebedragons A basic 3D scene implemented with various engines, frameworks or APIs.
  • glfw A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
  • MoltenVK Vulkan graphics and compute API, that runs on Apple's Metal graphics framework
  • dxvk Vulkan-based D3D11 implementation for Linux / Wine
  • angle A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.
  • Vita3K Experimental PlayStation Vita emulator vita3k.org/

Offline Path Tracing

Real-time Path Tracing

  • kajiya Experimental real-time global illumination renderer
  • PLTFalcor Real-time physical light transport (PLT) framework
  • lighthouse2 Lighthouse 2 framework for real-time ray tracing
  • Path-Tracing-SDK Real-time path tracing library and sample
  • Candela Pathtraced Realtime Engine
  • Lumen A Vulkan Raytracing framework for various bidirectional path tracing techniques
  • IDKEngine OpenGL Toy-"Engine" with Wavefront Path Tracer and Rasterizer Pipeline with Voxel Cone Tracing/Global Illumination

Soft Renderer

  • OpenSWR A High Performance, Highly Scalable Software Rasterizer for OpenGL
  • miaow An open source GPU based off of the AMD Southern Islands ISA.
  • SalviaRenderer SALVIA is the rasterizer based software renderer. The goal of SALVIA is capacity of Direct3D 10+.
  • tinyrenderer A brief computer graphics / rendering course
  • coco3d Coco3D is a real-time 3D software renderer for Windows PCs and mobile devices
  • swiftshader high-performance CPU-based implementation of the OpenGL ES and Direct3D 9 graphics APIs
  • mesa 👍 https://www.mesa3d.org
  • renderer A shader-based software renderer written from scratch in C89 https://zauonlok.github.io/renderer/
  • SoftwareRenderer Software rendering engine with PBR. Built from scratch on C++.
  • RetroWarp The GPU is implemented with "pure" software rendering
  • grr Gpu Renderer and Rasterizer - for python
  • virglrenderer VirGL virtual OpenGL renderer
  • AMDVLK AMD Open Source Driver For Vulkan
  • open-gpu-kernel-modules NVIDIA Linux open GPU kernel module source
  • EmberGL A low-level open source graphics library, similar to OpenGL/DirectX/Vulkan, designed for real-time 2D/3D rendering on MCUs and other memory constrained non-GPU systems
  • SoftGLRender Tiny C++ Software Renderer / Rasterizer, and implements OpenGL and Vulkan renderers for comparison
  • raster2mesh This project demonstrates a fun and intriguing approach to rasterize anything towards a mesh, using only GPU pixel shaders and rasterization on OpenGL 4.2.

Rendering Design

  • FrameGraph vulkan abstraction layer that represent frame as a task graph
  • DataDrivenRendering Data Driven Rendering repository
  • vuk vuk - A rendergraph-based abstraction for Vulkan
  • fg Rendering abstraction which describes a frame as a directed acyclic graph of render tasks and resources.
  • RenderGraph Render graph management library.
  • FrameGraph Renderer agnostic frame graph library Example
  • LegitEngine A rendergraph-based graphical framework for Vulkan
  • PathFinder An attempt to build a modern renderer using modern graphic APIs. Pillars of the architecture are Bindless Resources and Render Graph.

GI

Collection

  • IlluminationComparison A comparison of typical illumination methods. (SSAO, HBO, VXGI, and Ray Traced Global Illumination)
  • dirtchamber A mixed reality testing environment for real-time global illumination algorithms
  • DXR-Sandbox-GI Simple DirectX 12 toy framework for testing Global Illumination: Reflective Shadow Mapping, Light Propagation Volume, Voxel Cone Tracing, DXR

PRT

Irradiance Environment Maps

  • envtools Utilities to manipulate spherical images

Irradiance Probes/Voxels

Radiance Cache

  • RTXGI RTXGI v2.0 Update including Neural Radiance Cache and Spatial Hash Radiance Cache
  • BrixelizerGi FidelityFX Brixelizer GI is a simplified implementation of AMD GI-1.0
  • Capsaicin

SurfelGI

  • SurfelGI Real-Time dynamic global illumination based on surfel. This project is based on GIBS presented at SIGGRAPH 2021.

VPL

Imperfect Shadow Maps

LPV

VCT

  • Nigiri A fully-dynamic voxel-based global illumination system for Unity.
  • SEGI Almost real-time Global Illumination for Unity.
  • Unity-SRP-VXGI Voxel-based Global Illumination using Unity Scriptable Render Pipeline.
  • VCTRenderer Deferred voxel shading for real-time global illumination. https://jose-villegas.github.io/post/deferred_voxel_shading/
  • voxel-cone-tracing A real-time global illumination implementation using voxel cone tracing.
  • VoxelConeTracingGI Global illumination with Voxel Cone Tracing in fully dynamic scenes using a 3D clipmap to support huge areas around the camera while maintaining a low memory footprint.
  • Vulkan-VXGI-VR-FrameWork University of Pennsylvania, CIS 565: GPU Programming and Architecture, Final Project
  • MAGE Game and rendering engine featuring both forward and deferred PBR (physically-based rendering) pipelines with optional indirect illumination using Voxel Cone Tracing.
  • VoxelConeTracing An implementation of the "Voxel Cone Tracing" global illumination technique proposed by Cyril Crassin
  • VCTGI GPU-based real-time global illumination renderer based on voxel cone tracing
  • DXE A voxel cone traced realtime Global Illumination rendering engine in dx12, wip
  • Voxel_Cone_Tracing Voxel-Cone-Tracing easy to understand

SSGI

  • SSRT3 Real-time global illumination using screen-space information for Unity HDRP
  • UnitySSGIURP Screen Space Global Illumination for Unity URP (Universal Render Pipeline).
  • SSGI-URP Screen Space Global Illumination for Unity Universal Render Pipeline
  • FSSGI Fast Screen Space Global Illumination
  • mfssgi

Radiance Cascades

Path tracing

RTX

  • Q2RTX NVIDIA’s implementation of RTX ray-tracing in Quake II zyanidelab/Q2RTX
  • Quartz Physically based Vulkan RTX path tracer with a declarative ES7-like scene description language.
  • DXRPathTracer A (very) simple path tracer implemented using DirectX Ray Tracing (DXR)
  • WispRenderer RTX Ray Tracing Renderer, made by Y3 students at Breda University of Applied Science https://teamwisp.github.io
  • rtx-explore DirectX Raytracing Path Tracer
  • Kaguya This is a hobby project using DirectX 12 and DirectX RayTracing (DXR)
  • RayTracingInVulkan Implementation of Peter Shirley's Ray Tracing In One Weekend book using Vulkan and NVIDIA's RTX extension.
  • PBRVulkan Vulkan Real-time Path Tracer Engine
  • Helios Real-time unidirectional GPU path tracer using the cross-vendor Vulkan ray-tracing extensions.
  • vk_mini_path_tracer A beginner-friendly Vulkan path tracing tutorial in under 300 lines of C++.

ReSTIR

Metropolis Light Transport

PhotonMapping

  • CPMFIGIOTVVD Correlated Photon Mapping for Interactive Global Illumination of Time-Varying Volumetric Data by Daniel Jönsson and Anders Ynnerman
  • SOPGI A VEX raytracer for SideFX Houdini with photon mapping global illumination and full recursive reflections and refractions
  • DXR-PhotonMapper An implementation of Photon Mapping using DXR
  • RTProgressivePhotonMapper A Hardware Raytracing based Progressive Photon Mapper using Falcor 5.2

Ambient occlusion

Bent Normal

  • ssbn Screen Space Bent Normals

Radiosity Normal Mapping

  • GzRNM brings Radiosity Normal Mapping/Directional Light Mapping to Unity 3D!
  • SSbumpGenerator A GUI interface to a tool for generating SSBumps (Self Shadowed Bump Maps).

LightMap

  • lightmapper A C/C++ single-file library for drop-in lightmap baking. Just use your existing OpenGL renderer to bounce light!
  • seamoptimizer A C/C++ single-file library that minimizes the hard transition errors of disjoint edges in lightmaps.
  • BakingLab A D3D11 application for experimenting with Spherical Gaussian lightmaps
  • GPULightmass Luoshuang's GPULightmass for UE4
  • trianglepacker Triangle packer for light map
  • HDR_Lightmapper Implements a cycles based lightmapper with denoiser
  • The_Lightmapper Fast and easy baked GI Lightmaps for Blender and Cycles
  • LightmapperToy This project is a hobby lightmapper completely based on Houdini geometry nodes. Basically it grew out of a re-implementation of Matt's The Baking Lab with some modification.

MLGI

  • DeepIllumination Code and examples from our paper "Deep Illumination: Approximating Dynamic Global Illumination with Generative Adversarial Networks," by Manu Mathew Thomas and Angus Forbes

Others

  • LGHDemo Real-Time Rendering with Lighting Grid Hierarchy I3D 2019 Demo
  • PBGI Point Based Global Illumination

GI Simulation

Diffuse inter-reflection

Caustic

  • SC_Tracer photon mapping for global illumination and caustic
  • Crystal-Caustics Approximated crystal caustics effect in Unity.

Reflection

Refraction

Shadow

PostProcessing

Collection

  • VolFx Selective Post Processing with buffer system
  • PostProcessing Post Processing Stack
  • reshade-shaders A collection of post-processing shaders written for ReShade. https://reshade.me
  • GShade GShade is a highly modified ReShade fork & utility package with numerous improvements and settings autodetection for over 300 games.
  • CobraFX CobraFX comprises SirCobra's contribution of shaders for ReShade.
  • OtisFX A small set of effects for Reshade
  • Cat-PostProcessing various post-processing effects for Unity

AA

  • CMAA2 Conservative Morphological Anti-Aliasing 2.0
  • MSAAFilter MSAA and Temporal AA Sample
  • temporal Temporal Reprojection Anti-Aliasing for Unity 5.0+
  • TAA_Unity_URP Temporal Anti-Aliasing(TAA) for Unity’s Universal Render Pipeline
  • smaa SMAA: Subpixel Morphological Antialiasing, is a very efficient GPU-based MLAA implementation
  • smaaDemo Subpixel Morphological AntiAliasing OpenGL/Vulkan demo
  • SMAA SMAA in unity3D
  • SpecularAA A demo of various normal map filtering techniques for reducing specular aliasing
  • glsl-fxaa FXAA implementation for glslify in WebGL
  • Phone-wire AA
  • DLAA (DLAA) Directionally Localized antiAliasing
  • TAA-STAR C++/Vulkan Implementations of State of the Art Temporal Anti-Aliasing Techniques
  • UE4 DLSS DLSS Plugin for Unreal Engine
  • Fast-Adaptive-AA This is a modification of Timothy Lottes' PC FXAA v3 with a different Edge Detection algorithm that prevents blurring and catches edges better. For Reshade

Denoising

Bloom

Tone Mapping

ProceduralProcessing

ImageFilter

  • UnityImageEffects Post Processing Effects for Unity
  • android-gpuimage Android filters based on OpenGL (idea from GPUImage for iOS)
  • NonuniformBlur A very fast approximation to large-kernel Gaussian blur with nonuniform blur radii, by making use of box-filtered mip maps V-cycle

SuperResolution

  • FidelityFX-FSR2 FidelityFX Super Resolution 2
  • FidelityFX-FSR FidelityFX Super Resolution
  • Anime4K A High-Quality Real Time Upscaler for Anime Video
  • Magpie Magpie 是一个轻量级的窗口缩放工具,内置了多种高效的缩放算法和滤镜。它主要用于提升游戏画质和让不支持全屏化的游戏也能全屏显示等。
  • Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resolution VSR, SRMD, RealSR, Anime4K, RIFE, IFRNet, CAIN, DAIN, and ACNet.

CheckerboardRendering

Compression

Material

Shade Model

BSDF
SVBRDF
  • svbrdf-oculus materials from Two-Shot SVBRDF Capture for Stationary Materials by Aittala et al (2015).
  • Matmorpher Code repository for the EGSR 2021 paper MatMorpher: A Morphing Operator for SVBRDFs
  • DeepInverseRendering Deep Inverse Rendering for High-resolution SVBRDF Estimation from an Arbitrary Number of Images

BSSRDF

IBL

  • IBLBaker Light probe generation and BRDF authoring for physically based shading.
  • cmftStudio cross-platform open-source cubemap filtering tool.
  • Probulator Experimentation framework for probe-based lighting
  • PBR An implementation of physically based shading model & image based lighting in various graphics APIs.
  • hyper3d-envmapgen Pre-filtered mipmapped radiance environment map generator that runs on WebAssembly.

AreaLight

  • LTC_BRDF_Fit BRDF fitting code for LTC Area Lights by Heitz et al.
  • ltc_code Code for "Real-Time Polygonal-Light Shading with Linearly Transformed Cosines"
  • rtswplusd Real-Time Shading with Polyhedral Lights using Silhouette Detection
  • BezierLightLTC An official implementation of the paper "Real-Time Shading of Free-Form Area Lights using Linearly Transformed Cosines".

Character

SSS

Skin

Eye

Hair

  • TressFX DirectX 11 library that provides convenient access to realistically rendered and simulated hair and fur
  • vkhr Real-Time Hybrid Hair Rendering using Vulkan™
  • WetaHair Implementation of "Importance Sampling for Physically-Based Hair Fiber Models"
  • libWetHair A Multi-Scale Model for Simulating Liquid-Hair Interactions http://libwethair.info
  • Realtime-Vulkan-Hair University of Pennsylvania, CIS 565: GPU Programming and Architecture, Final Project

Colth

Silk

Fur

Glint

Nature

Water

Snow

Sand

  • JourneySand An Unity project to reproduce the sand rendering in Journey's style

Grass

Tree

Terrain

  • Terrain-Topology-Algorithms Terrain topology algorithms in Unity
  • tin-terrain A command-line tool for converting heightmaps in GeoTIFF format into tiled optimized meshes.
  • TerrainPrettifier A small GPU-based component designed to aid in cleaning and refining satellite/DEM based terrains directly inside Unity.
  • PVTUT Procedural Virtual Texture with Unity Terrain
  • terrain-erosion-3-ways Three Ways of Generating Terrain with Erosion Features
  • Webgl-Erosion Erosion simulation in Web Browser
  • TerraForge3D Cross Platform Professional Procedural Terrain Generation & Texturing Tool
  • Terrain-Decorator lightweight terrain tool for unity3d
  • ProceduralTerrain Procedural voxel terrain generation in Unity
  • Terrain3D An editable terrain system for Godot 4, written in C++

Cloud

Sky

Rain

  • Unity-Raindrops raindrops shader
  • RainDropEffect Rain Drop Effect2: Effective, Fast and Flexible Rain Distortion Effect for Unity
  • LensRain A screen-space lens rain effect using Unity's V2 Post-processing framework.
  • RainFX Natural Rain

Fire

  • fire A fire effect for Unity.
  • volumetric-fire Project for Computer Graphics course by Jaagup Kuhi, Siim Raudsepp and Andri Poolakese

Ice

Iridescent

Glass

Gem

Environment

VolumetricLight

FakeVolumetricLight

  • VolumetricTracer A simple way to render soft, volumetric bullet tracers in Unity. Only needs a unit cube and a material to render and supports instancing.

Atmospheric

Fog

Render Path

Camera

Physically Based Camera

DOF

  • HexBokehBlur Hexagonal Bokeh Blur
  • BokehDepthOfField Implementing Different Algorithms to mimic Bokeh Depth Of Field: A Physical Camera Effect created due to Focal Length, Aperture size, shape
  • VVDoFDemo

Lens

Standard Format

  • OpenShadingLanguage Advanced shading language for production GI renderers
  • glTF-SDK glTF-SDK is a Software Development Kit for glTF
  • cgltf Single-file glTF 2.0 loader and writer written in C99
  • fx-gltf A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0
  • gltf-pipeline Content pipeline tools for optimizing glTF assets
  • glTFast Efficient glTF 3D import / export package for Unity
  • fastgltf A blazing fast C++17 glTF library powered by SIMD.
  • SharpGLTF glTF reader and writer for .NET Standard
  • USD Universal Scene Description http://www.openusd.org
  • MaterialX MaterialX is an open standard for transfer of rich material and look-development content between applications and renderers.
  • MDL NVIDIA Material Definition Language SDK
  • OpenMeshEffect OpenFX Mesh Effect API - A plug-in API for cross-software procedural mesh effects

Stylize

NPR

Low Poly

  • LowpolyOcean low polygon water effect working in Unity
  • Lowpoly-Water-Unity Low poly water with edge/shore blend. Similar to the awesome water in Monument Valley.
  • FlatShader A very simple shader which performs flatshading without the need for duplicating vertices when building the geometry.

Voxel

Volume Rendering

RayMarch

Point Clouds

  • PCL A standalone, large scale, open project for 2D/3D image and point cloud processing.
  • Pcx Point cloud importer & renderer for Unity
  • compute_rasterizer Rendering Point Clouds with Compute Shaders
  • potree WebGL point cloud viewer for large datasets
  • point2mesh Reconstruct Watertight Meshes from Point Clouds [SIGGRAPH 2020]

Shear-warp

Other

  • OpenVDB Sparse volume data structure and tools. OpenVDBForUnity
  • unreal-vdb thilamb forked This repo is a non-official Unreal plugin that can read OpenVDB and NanoVDB files in Unreal.
  • openvkl Intel® Open Volume Kernel Library (Intel® Open VKL) is a collection of high-performance volume computation kernels

Acceleration

Frustum Culling

PVS

  • kPortals A pre-calculated Portal visibility system for Unity.
  • CornerCulling Fast and Maximally Accurate Occlusion Culling

..

  • pipeline nvpro-pipeline is a research rendering pipeline
  • IndirectOcclusionCulling Indirect Occlusion Culling
  • melt Automatic conservative mesh occluder generation by box filling
  • EveryCulling This library integrates multiple culling methods into one library.

Bounding

  • bounding-mesh Implementation of the bounding mesh and bounding convex decomposition algorithms for single-sided mesh approximation

Soft Occlusion Culling

Hardware Occlusion Queries

Hierarchical-Z Buffer

Hierarchical Occlusion Map

GPU-Driven

Other Cullings

Imposter

  • IMP billboard imposter baking for Unity
  • URPIMP IMP ported to URP
  • ImpostorBaker UE4 Plugin for generating Impostors for static meshes

LOD

  • Planet-LOD Planet Rendering: Adaptive Spherical Level of Detail based on Triangle Subdivision

HLOD

Meshlets

  • meshlete Chop 3D objects to meshlets
  • gl_vk_meshlet_cadscene This OpenGL/Vulkan sample illustrates the use of "mesh shaders" for rendering CAD models.

Spatial Data Structures

  • HashDAG Interactively Modifying Compressed Sparse Voxel Representations
  • aabo Axis Aligned Bounding Octahedron
  • Transvoxel-XNA Transvoxel implementation in C# for XNA

CBT

  • large_cbt Concurrent Binary Trees for Large-Scale Game Components, at Siggraph 2024

Octree&Quadtree

  • i-octree [ICRA2024] Implementation of A Fast, Lightweight, and Dynamic Octree for Proximity Search
  • UnityOctree A dynamic, loose octree implementation for Unity written in C#
  • NativeTrees Burst compatible Octree and Quadtree for Unity
  • NativeQuadtree A Quadtree Native Collection for Unity DOTS
  • ECS-Octree Unity ECS based octree.

SparseVoxelOctree

  • ooc_svo_builder Out-Of-Core Construction of Sparse Voxel Octrees - reference implementation
  • SparseVoxelOctree A GPU SVO Builder using rasterization pipeline, a efficient SVO ray marcher and a simple SVO path tracer.
  • unity-sparse-voxel-octrees A sparse voxel octree renderer, made for use with Unity.

KDTree

  • KDTree Fast KDTree for Unity, with thread-safe querying.
  • KdTree A fast, generic, multi-dimensional Binary Search Tree written in C#
  • KNN Fast K-Nearest Neighbour Library for Unity DOTS

BVH

  • three-mesh-bvh A BVH implementation to speed up raycasting and enable spatial queries against three.js meshes.
  • bhh Bounding Halfspace Hierarchy
  • Fast-BVH A Simple, Optimized Bounding Volume Hierarchy for Ray/Object Intersection Testing
  • bvh A modern C++ BVH construction and traversal library
  • bvh BVH STAR in Japanese
  • bvh_article Code accompanying the blog post on bvh construction.
  • nbvh Source Code for "N-BVH: Neural ray queries with bounding volume hierarchies" (SIGGRAPH 2024)
  • ComputeShaderBVHMeshHit Unity ComputeShader implementation of BVH(Bounding Volume Hierarchy) based mesh hit checking.
  • UnityBoundingVolumeHeirachy Unity Bounding Volume Heirachy (BVH)
  • VkLBVH GPU LBVH builder implemented in Vulkan and GLSL.
  • HIP-BVH-Construction experiments with BVH build algorithms on GPU.

SpatialHashing

SDF

  • Discregrid A static C++ library for the generation of discrete functions on a box-shaped domain. This is especially suited for the generation of signed distance fields.
  • IsoMesh A group of related tools for Unity for converting meshes into signed distance field data, raymarching signed distance fields, and extracting signed distance field data back to meshes via surface nets or dual contouring.
  • MeshToSDF Unity. Computer Shader. JFD Generate SDF in realtime
  • unity-sdf-generator A Unity tool to generate signed distance field volumes (as Texture3D assets) from meshes.
  • msdfgen Multi-channel signed distance field generator
  • SDFGen A simple commandline utility to generate grid-based signed distance field (level set) generator from triangle meshes
  • DeepSDF Learning Continuous Signed Distance Functions for Shape Representation
  • sdfu Signed Distance Field Utilities https://crates.io/crates/sdfu
  • mTec Rendering the World Using a Single Triangle:Efficient Distance Field Rendering
  • distance-occlusion A library of distance and occlusion generation routines
  • pb_CSG Constructive Solid Geometry (CSG) csg.js
  • rust_test 👍
  • snelly A system for physically-based SDF (signed distance field) pathtracing in WebGL
  • sdf-explorer JCGT / I3D paper, "A Dataset and Explorer for 3D Signed Distance Functions".

Transparency

OIT

Optimization

Differentiable

  • SoftRas Project page of paper "Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning"
  • redner Differentiable rendering without approximation.
  • nvdiffrast Nvdiffrast - Modular Primitives for High-Performance Differentiable Rendering.
  • jrender Jrender 2.0 (Jittor渲染库)

Math

  • Eigen ⭐ linear algebra: matrices, vectors, numerical solvers, and related algorithms. Eigen
  • MathGeoLib 👍 A C++ library for linear algebra and geometry manipulation for computer graphics
  • GeometricTools 👍 A collection of source code for computing in the fields of mathematics, geometry, graphics, image analysis and physics.
  • CGAL geometric algorithms in the form of a C++ library.
  • Mathfs 👍 Expanded Math Functionality for Unity
  • glm OpenGL Mathematics (GLM) https://glm.g-truc.net
  • cglm Highly Optimized Graphics Math (glm) for C
  • GlmSharp Open-source semi-generated GLM-flavored math library for .NET/C#
  • GEOS Geometry Engine
  • klein 👍 P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library https://jeremyong.com/klein
  • MTL Matrix Template Library, a linear algebra library for C++ programs.
  • DirectXMath DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps
  • polyscope A prototyping-oriented UI for geometric algorithms https://polyscope.run
  • geometry-central Applied 3D geometry in C++, with a focus on surface meshes.
  • GeometRi.CSharp Simple and lightweight computational geometry library for .Net
  • geogram a programming library with geometric algorithms
  • geomc A c++ linear algebra template library
  • geometry3Sharp geometry4Sharp C# library for 2D/3D geometric computation, mesh algorithms, and so on
  • fastapprox Approximate and vectorized versions of common mathematical functions
  • hlslpp Math library using hlsl syntax with SSE/NEON support
  • vml C++17 GLSL-like vector and matrix math lib
  • mathfu C++ math library developed primarily for games focused on simplicity and efficiency. http://google.github.io/mathfu
  • mathnet-numerics Math.NET Numerics numerics.mathdotnet.com
  • Terathon-Math-Library C++ math library for 2D/3D/4D vector, matrix, quaternion, and geometric algebra.
  • SuiteSparse The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University.
  • MathUtilities 👍 A collection of some of the neat math and physics tricks that I've collected over the last few years.
  • just_math Just Math - A collection of pure math demos for computer graphics.

MathInShader

SH

Curve

  • tinyspline ANSI C library for NURBS, B-Splines, and Bézier curves with interfaces for C++, C#, D, Go, Java, Javascript, Lua, Octave, PHP, Python, R, and Ruby.
  • nurbs Non-Uniform Rational B-Splines (NURBS) of any dimensionality
  • BezierInfo-2 The development repo for the Primer on Bézier curves, https://pomax.github.io/bezierinfo

FFT

  • benchmarking-fft choosing FFT library
  • VkFFT Vulkan Fast Fourier Transform library
  • GLFFT A C++11/OpenGL library for the Fast Fourier Transform
  • dj_fft Header only FFT library

Sampling

  • SampleZoo Simple implementations of sampling patterns, with objective tests to compare them

Random

  • pcg-cpp PCG Random Number Generation

Image&Color

Noise

  • fastnoise Filter-adapted Spatiotemporal Sampling for Real-Time Rendering
  • procedural-tileable-shaders Collection of tileable procedural textures such as: cellular noise, fbm, voronoi, perlin and other.
  • FastNoiseLite Fast Portable Noise Library - C# C++ C Java(Script) HLSL GLSL
  • FastNoise2 Modular node graph based noise generation library using SIMD, C++17 and templates
  • LibNoise.Unity libnoise Coherent noise library for Unity, a port of LibNoise
  • webgl-noise ⭐ Procedural Noise Shader Routines compatible with WebGL
  • Wombat An efficient texture-free GLSL procedural noise library
  • GPU-Noise-Lib Optimized GPU noise functions and utilities http://briansharpe.wordpress.com/
  • NoiseShader Noise shader library for Unity
  • OpenSimplex2 Successors to OpenSimplex Noise, plus updated OpenSimplex.
  • Accidental Noise Library generating Perlin noise and other forms of noise in a modular fashion.
  • VisualNoiseDesigner Visual Noise Designer for Unity
  • TileableVolumeNoise Collection of functions that can be used to generate tileable volume/3d noise. An exemple of volume noise functions that can be specifically used for clouds is also presented.
  • CloudNoiseGen A static utility class for Unity which handles generating and loading periodic, cloud-like (perlin-worley) 3D noise textures on the GPU.
  • BlueNoiseGenerator an implementation of a Siggraph 2016 paper "Blue-noise Dithered Sampling" by Iliyan Georgiev and Marcos Fajardo from Solid Angle
  • LowDiscBlueNoise generate 2D point sets which have both low discrepancy and Blue-Noise properties.
  • psrdnoise Tiling simplex flow noise in 2-D and 3-D compatible with GLSL 1.20 (WebGL 1.0) and above.

Computer Vision

  • OpenCV Open Source Computer Vision Library. C# Wrapper opencvsharp
  • unrealcv UnrealCV: Connecting Computer Vision to Unreal Engine

Image

  • bimg 👍 Image library.
  • OpenImageIO OpenImageIO http://www.openimageio.org
  • ImageSharp A cross-platform library for the processing of image files; written in C#
  • ImageMagick create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200)
  • ImageViewer HDR, PFM, DDS, KTX, EXR, PNG, JPG, BMP image viewer and manipulator
  • GIMP The GNU Image Manipulation Program
  • psd_sdk A C++ library that directly reads Photoshop PSD files.
  • hdrview High-dynamic range image viewer with an emphasis on examining and comparing images, and including minimalistic tonemapping capabilities.
  • Luminance HDR A complete workflow for HDR imaging.
  • DirectXTex DirectXTex texture processing library walbourn.github.io/directxtex/

VectorGraphics

  • vg-renderer A vector graphics renderer for bgfx, based on ideas from NanoVG and ImDrawList (Dear ImGUI)
  • blaze Multi-threaded, CPU-based vector graphics rasterizer.

TextureCompressed

  • nv_dds DDS image loader for OpenGL/ OpenGL ES2 http://paroj.github.io/nv_dds/
  • nvidia-texture-tools Texture processing tools with support for Direct3D 10 and 11 formats.
  • crunch Advanced DXTc texture compression and transcoding library http://binomial.info
  • unity-ycca-subsampling ChromaPack YCCA chroma subsampling technique
  • basis_universal ⭐ Basis Universal GPU Texture and Texture Video Compression Codec
  • bc7enc Single source file BC1-5 and BC7 encoders and BC1-5/7 decoders with MIT or Public Domain licenses
  • bcdec Small header-only C library to decompress any BC compressed image
  • astc-encoder This is the official repository for the Arm ASTC Encoder, a texture compressor for the Adaptive Scalable Texture Compression data format.
  • brotli_g_sdk Brotli-G SDK provides an improved lossless compression ratio with GPU decompression support than the standard Brotli compression algorithm maintained by the IETF (also known as RFC7932)
  • betsy 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.
  • Goofy Goofy - Realtime DXT1/ETC1 encoder
  • UnityGPUTexCompression How to do DXT/BCn texture compression in Unity using compute shaders
  • GPURealTimeBC6H Real-time BC6H compression on GPU
  • ISPCTextureCompressor ISPC Texture Compressor
  • tev High dynamic range (HDR) image comparison tool for graphics people with an emphasis on OpenEXR images.
  • KtxUnity 👍 Load KTX and Basis Universal textures at runtime
  • qoi The “Quite OK Image” format for fast, lossless image compression
  • libspng Simple, modern libpng alternative https://libspng.org/
  • fpng Super fast C++ .PNG writer/reader

Color

Mesh

IO

  • assimp A library to import and export various 3d-model-formats
  • open3mod Open 3D Model Viewer - A quick and powerful 3D model viewer
  • DirectXMesh DirectXMesh geometry processing library
  • OpenFBX Lightweight open source FBX importer
  • fast_obj Fast C OBJ parser

Subdivision

Simplification

  • CWF Consolidating Weak Features in High-quality Mesh Simplification
  • Fast-Quadric-Mesh-Simplification Mesh triangle reduction using quadrics
  • UnityMeshSimplifier Mesh simplification for Unity.
  • simplify Implementation of Surface Simplification Using Quadric Error Metrics, SIGGRAPH 97, written in Go.
  • SeamAwareDecimater Mesh simplification with UV's boundary preserved
  • BunnyLOD Cross platform GLFW based port of Stan Melax's BunnyLOD Easy Mesh Simplification

Deform

  • UnityPenetrationTech A gpu-based deformation system for mapping penetrators along orifice paths.
  • Deform A framework for deforming meshes in the editor and at runtime in Unity.

DelaunayTriangulation

Hull

Delaunay&Destruction

  • unity-delaunay A Delaunay/Voronoi library for Unity, and a simple destruction effect
  • Boom.unity Destruction effect in unity
  • ScamScatter Open Source Real time procedural mesh destruction for Unity3D
  • unity-destruction An open-source script to destroy objects realistically in Unity3D.
  • OpenFracture Open source mesh slicing/fracturing utility for Unity

Slicer

  • ezy-slice 👍 An open source mesh slicer framework for Unity3D Game Engine. Written in C#.
  • Unity-Plane-Mesh-Splitter Split large meshes in Unity into smaller submeshes

Modeling

  • Dust3D 👍 a cross-platform 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one. https://dust3d.org/
  • meshlab MeshLab is mostly based on the mesh processing library VCGlib
  • Mesh-processing-library mesh processing techniques in computer graphics published at ACM SIGGRAPH in 1992–1998
  • pmp-library The Polygon Mesh Processing Library
  • PyMesh a rapid prototyping platform focused on geometry processing https://pymesh.readthedocs.io
  • trimesh Python library for loading and using triangular meshes.
  • libigl Simple C++ geometry processing library.
  • libmesh libMesh github repository libmesh.github.io
  • instant-meshes Interactive field-aligned mesh generator
  • openmesh A generic and efficient polygon mesh data structure
  • openflipper programming framework designed for processing, modeling and rendering of geometric data.
  • cinolib A generic programming header only C++ library for processing polygonal and polyhedral meshes
  • mmg open source software for bidimensional and tridimensional remeshing http://www.mmgtools.org
  • Directional Directional is a C++ library for creating, manipulating and visualizing directional fields on 3D meshes
  • Easy3D A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data

Sketch

  • monster-mash A new sketch-based modeling and animation tool that allows you to quickly sketch a character, inflate it into 3D, and promptly animate it.

Optimization

  • meshoptimizer Mesh optimization library that makes indexed meshes more GPU-friendly
  • NvTriStrip NvTriStrip library and NvTriStripper tool

Compress

  • Compressonator Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs
  • draco compressing and decompressing 3D geometric meshes and point clouds.

Reconstruction

  • meshroom ⭐ 3D Reconstruction Software based on the AliceVision framework.
  • openMVG open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.

Direction fields

  • fieldgen Generates high-quality, optimally smooth tangent direction fields on triangle meshes.

UI

  • imgui ⭐ Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
  • ImGuizmo Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
  • nanovg Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
  • nanogui Minimalistic GUI library for OpenGL
  • nuklear A single-header ANSI C gui library
  • AnttWeakbar a light and intuitive GUI into OpenGL or DirectX based programs to interactively tweak parameters on-screen.

Util

  • raylib A simple and easy-to-use library to enjoy videogames programming
  • stb single-file public domain (or MIT licensed) libraries for C/C++
  • debug-draw Immediate-mode, renderer agnostic, lightweight debug drawing API.

GPGPU

  • arrayfire ArrayFire: a general purpose GPU library.
  • hipSYCL Implementation of SYCL for CPUs, AMD GPUs, NVIDIA GPUs
  • Amplifier.NET Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code.
  • moderngpu Patterns and behaviors for GPU computing
  • ILGPU ILGPU JIT Compiler for high-performance .Net GPU programs www.ilgpu.net
  • gpu-io A GPU-accelerated computing library for running physics simulations and other GPGPU computations in a web browser.

JIT

  • taichi Productive & portable high-performance programming in Python. taichi-lang.org
  • Halide a language for fast, portable data-parallel computation halide-lang.org
  • warp A Python framework for high performance GPU simulation and graphics
  • drjit Dr.Jit — A Just-In-Time-Compiler for Differentiable Rendering

GPU

  • perftest GPU texture/buffer performance tester

VFX

Minecraft

MetaBlobs

Transitions

Mesh Cut

PageCurl

Projector

Decal

  • driven-decals A mesh-based PBR decal system for Unity's universal render pipeline.
  • MeshDecal A simple mesh decal component for Unity
  • ProjectionSpray Draw spray to 3D model with Unity.
  • Splatoonity Splatoon like painting in Unity 3D
  • UnityURPUnlitScreenSpaceDecalShader Unity unlit screen space decal shader for URP.
  • kDecals Projection Decals for Unity's Universal Render Pipeline.
  • AirSticker Air Sticker is a decal system that addresses the limitations of URP decals and has a low impact on performance.
  • DMDecalBuffer Rendering decals to an offscreen buffer in URP for shader effects
  • SkinnedMeshDecals An example of rendering decals on SkinnedMesh Renderers in Unity.

OutLine

Motion

Portal

  • unity-portal-rendering Super small example of using offscreen render targets to achieve a portal effect in Unity
  • shaders-portal A showcase of shader effects to replicate portals in videogames.

Fractal

InteriorMapping

Dissolve

  • VerticalDissolve Procedural vertical dissolve shader. Highly customizable. Tweak edge color, noisiness & waviness, rim light, emission scrolling and more.

HoloShield

  • HoloShield Highly customizable sci-fi shield / force field shader for Unity3D.

Glitch

SmearFrame

Matcap

EchoFX

Scan

  • Post-Processing-Scan A 3D scan/sonar-like post-processing effect for Unity. Essentially a visualization of a spherical signed distance field (SDF).

Cubism

  • Cubism-Shader A shader that creates a cubism effect based on voronoi segmentation in Unity 3d

Wireframe

  • unity-solidwire-shader A simple shader which renders stylized wireframes while staying true (within reason) to the visual style of the Vectrex

Growth

  • hedera paint 3D ivy in the Unity Editor, watch procedurally generated meshes simulate growth and clinging in real-time

BleedingEdge

Cone Light

  • GPU-Line-of-Sight GPU Line of Sight / Field of View visualization for Unity
  • unity_coneofsightfx This project shows how to implement Commandos cone of sight fx in Unity3D.
  • VisionConeDemo A demo of using URP RenderFeatures to add a vision cone rendering pass

VFXGraph

  • HDRP-Fluvio Some early tests of FluvioFX with VFX Graph and HDRP

Compute Shader Effect

  • FinalAudition A complete remake of 2005 demo "Final Audition" by Plastic

Others

  • Anime-Speed-Lines Post-processing effect to procedurally generate a anime/manga-style vignette of lines typically used to portray speed or surprise.

Tools

UE4

Unity

DataExchange

  • Unity-AlembicToVAT Alembic to VAT (Vertex Animation Texture) mini tool
  • Unity3D-VATUtils Extension of VAT shader form sideFX houdini with various utils for Unity
  • VFXGraphSandbox Unity VFX Graph technical experiment.
  • alembic Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/
  • AlembicImporter Alembic importer and exporter plugin for Unity

Baker

  • SpecularProbes Bake specular highlights into Unity Reflection Probes, allowing baked lights to cast sharp specular highlights for free
  • Unity-PivotBaking Pivot baking in unity
  • pbr_baker PBR Baker - open source multi-functional baking tool for BRDF related work

Shader

ShaderToy

Visual Effects

  • gaffer A open source application framework designed specifically for creating tools for use in visual effects production.
  • cortex Libraries for visual effects software development

Procedural Texture

  • armorpaint 👍 3D PBR Texture Painting Software https://armorpaint.org
  • Mixture 👍 Mixture is a powerful node-based tool crafted in unity to generate all kinds of textures in realtime
  • material-maker A procedural textures authoring and 3D model painting tool based on the Godot game engine
  • FilterJS A node-based procedural texture generator, written in node.js and powered by WebGL
  • texturelab Free, Cross-Platform, GPU-Accelerated Procedural Texture Generator
  • Materialize Materialize is a program for converting images to materials for use in video games and similars.
  • xNormal A free tool to bake texture maps ( like normal maps and ambient occlusion )
  • FlowmapPainter
  • Fornos GPU Texture Baking Tool
  • AwesomeBump generate normal, height, specular or ambient occlusion textures from a single image
  • NormalmapGenerator A simple program that converts images into normal maps
  • Imogen GPU Texture Generator
  • TextureGenerator 3D and 2D Noise/Texture generation using the compute shaders within the Unity engine.

Atlas

  • boundary-first-flattening Boundary First Flattening (BFF) is a free and open source application for surface parameterization.
  • OptCuts a new parameterization algorithm, jointly optimizes arbitrary embeddings for seam quality and distortion
  • simpleuv Automatic UV Unwrapping Library for Dust3D
  • xatlas👍 Mesh parameterization / UV unwrapping library. A cleaned up version of thekla_atlas
  • thekla_atlas Atlas Generation Tool
  • UVAtlas UVAtlas isochart texture atlas
  • Cheetah-Texture-Packer High efficient and fast 2D bin packing tool
  • Unity3D-TextureAtlasSlicer
  • VaTexAtlas plugin for Unreal Engine 4 that makes texture atlases simpler to use with UMG system.
  • rectpack2D A header-only, very efficient 2D rectangle packing library. Used in Assassin's Creed and Skydio drones. 2 scientific references
  • RectangleBinPack Source code for performing 2d rectangular bin packing.
  • dp_rect_pack Rectangle packing library for C++
  • UnityRuntimeSpriteSheetsGenerator Unity – generate SpriteSheets at runtime!
  • pack-spheres Brute force circle/sphere packing in 2D or 3D
  • texture-defrag Texture Defragmentation for Photo-Reconstructed 3D Models

GPU Debug

  • renderdoc A stand-alone graphics debugging tool. https://renderdoc.org
  • tracy A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.
  • nvtop GPU & Accelerator process monitoring for AMD, Apple, Huawei, Intel, NVIDIA and Qualcomm
  • GPUOpen-Tools a comprehensive tool suite that enables developers to harness the benefits of CPUs, GPUs and APUs.
  • agi Android GPU Inspector
  • gapid Graphics API Debugger by google
  • microprofile embeddable CPU/GPU profiler
  • apitrace Tools for tracing OpenGL, Direct3D, and other graphics APIs
  • GPUVis GPU Trace Visualizer
  • Remotery Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer
  • Other: gDEBugger, NVIDIA Nsight, Microsoft PIX

ML Modeling

  • GET3D A Generative Model of High Quality 3D Textured Shapes Learned from Images (NeurIPS 2022)
  • MeshCNN Convolutional Neural Network for 3D meshes in PyTorch
  • points2surf Learning Implicit Surfaces from Point Clouds (ECCV 2020)

ML Texture

  • Text2Light [SIGGRAPH Asia 2022] Text2Light: Zero-Shot Text-Driven HDR Panorama Generation
  • texturize Generate photo-realistic textures based on source images. Remix, remake, mashup! Useful if you want to create variations on a theme or elaborate on an existing texture.
  • Exposure_Correction Project page of the paper "Learning Multi-Scale Photo Exposure Correction" (CVPR 2021).
  • Deep_White_Balance Reference code for the paper: Deep White-Balance Editing (CVPR 2020). Our method is a deep learning multi-task framework for white-balance editing.
  • HiDT Official repository for the paper "High-Resolution Daytime Translation Without Domain Labels" (CVPR2020, Oral)
  • MODNet A Trimap-Free Portrait Matting Solution in Real Time [AAAI 2022]
  • segmentation_models.pytorch Segmentation models with pretrained backbones. PyTorch.
  • stable-diffusion-webui Stable Diffusion web UI
  • dream-textures Stable Diffusion built-in to the Blender shader editor
  • Real-ESRGAN Real-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration.
  • TecoGAN a TEmporally COherent GAN for video super-resolution.
  • lama-cleaner Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.

ML Unity

SDK&Tutorial

SDK Samples

Book Code

Graphics Awesome

Book&Tutorial

Animation

  • ozz-animation open source c++ 3d skeletal animation library and toolset
  • DMotion DMotion - A high level Animation Framework for Unity DOTS
  • Mesh-Animation Mesh Animation is lightweight library for rendering hundreds of meshes in one draw call with GPU instancing.
  • Animation-Texture-Baker Animation Texture Baker for Unity
  • VertexAnimation Vertex animation baking tool, shaders and animation system for Unity DOTS/ECS.
  • Unity.GPUAnimation Simple but very fast GPU vertex shader based animation system for Unity.Entities
  • acl Animation Compression Library
  • cal3d Askeletal based 3d character animation library written in C++ in a platform-/graphic API-independent way.
  • GPUSkinning
  • UE4_MotionMatching- Early Implementation of Motion Matching tech
  • skeleton-builder
  • hazumu Raytracing Skeletal Animation
  • ssds An implementation of Skinning Decomposition with Similarity Transformations (I3D2018)

ML

  • AI4Animation Character Animation in Unity3D using Deep Learning and Artificial Intelligence

Bone

  • uSpringBone High performance SpringBone using ECS and JobSystem in Unity.
  • UnityChanSpringBone UnityChan Sping Bone System for lightweight secondary animations
  • SPCRJointDynamics 布風骨物理エンジン
  • EZSoftBone A simple kinetic simulator for Unity, you can use it to simulate hair/tail/breast/skirt and other soft objects
  • dem-bones An automated algorithm to extract the linear blend skinning (LBS) from a set of example poses
  • KawaiiPhysics Simple fake Physics for UnrealEngine4 & 5
  • Procedural-Rigging-in-Unity An experiment about procedural rigging.

IK

  • SimpleIK Unity Inverse Kinematics made easy

Skin

  • DQ-skinning-for-Unity DQ-skinning
  • dem-bones An automated algorithm to extract the linear blend skinning (LBS) from a set of example poses
  • d4rkAvatarOptimizer d4rkpl4y3r's VRChat avatar 3.0 optimizer that aims to reduce skinned mesh & material count.

Particle

Visualization

  • VTK The Visualization Toolkit