Rendering & Shader Theory
Foundational rendering and shader theory references.
| Software | Description | Pricing | License | Tags | Best For |
|---|---|---|---|---|---|
| Houdini | Procedural node-based DCC for VFX, simulation, and FX. See also: Software Reference → 3D Software: Paid |
Indie $269/yr, Core $1995, FX $4495 | Paid | Industry Standard · Procedural FX | Procedural FX, simulation, VFX |
| Polygonjs | Node-based WebGL design tool, used for procedural geometry, particles, materials See also: Software Reference → Misc 3D Utilities Software |
Freemium |
Related:
- (2014) Ray tracing with OpenGL Compute Shaders. Detailed ray tracing tutorial series using OpenGL (LWJGL) by Kai Burjack.
- 3D Game Shaders (source). Open-source project with resources on learning 3D game shaders.
- 3D Game Shaders for Beginners. Clear breakdowns of SSAO, bloom, SSR.
- 3D Math Primer for Graphics and Game Development. Book covering the 3D math foundations for graphics and game programming.
- 3D Programming Weekly Articles. Collection of shader and math related resources.
- A Gentle Introduction to Shaders in Unity3D. Series of posts introducing shader coding, oriented to developers with little to no knowledge of shaders.
- A Pixel is not a Little Square!. Classic paper debunking "a pixel is a little square." Also an intro to sampling.
- A Rapid Hierarchical Rendering Technique for Translucent Materials. Jensen & Buhler. SIGGRAPH 2002.
- A Survey on Participating Media Rendering Techniques. Cerezo et al. Visual Computer 2005.
- A Trip Through The Graphics Pipeline. A-trip-through-the-graphics-pipeline.
- Advanced Cel Shader (Pitchfork Academy). Advanced cel shader material breakdown.
- Advanced Creative Coding with WebGL & Shaders Paid. Workshop by Matt DesLauriers going deeper into graphics programming, math, and shaders.
- Advanced Materials in Blender - Shader Editor Tutorial. Blender shader editor material tutorials.
- Alan Zucconi's Blog. Shaders and maths. Well explained and very interesting.
- An introduction to Shader Art Coding. Video tutorial on the basics of creating art with shaders.
- Anatole Drupat (XT95). Shader artist (ShaderToy XT95).
- Anime/Toon/Cel Shading Model (Envieous, UE5). Custom UE5 anime/toon/cel shading model. Works with launcher engine versions.
- apitrace. Tools for tracing OpenGL, Direct3D, and other graphics APIs.
- Appleseed. Physically-based global illumination rendering engine.
- Bart Wronski's blog. Real-time rendering, post-processing effects, and advanced graphics techniques.
- bgfx. Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
- Blender & ACES. Setup Blender to work with ACES using OpenColorIO.
- Blender Addon PBR. Blender addon adding a material panel that builds Metallic/Roughness or Specular/Gloss node setups on the Principled BSDF.
- Blender Interplanety Storage (BIS) Freemium. Online material/shader storage add-on for Blender. Save node groups to a personal library and search/upload from inside Blender.
- BNPR Shaders. Collection of NPR shaders for Blender (EEVEE Comics Shader, Erisdraw3D, EEVEEToon).
- Bonzomatic. Live-coding editor for OpenGL pixel shaders, where the results appear on background as you edit the code.
- Brandon Fogerty's blog. Blog on real-time rendering, shader programming, and game engine development.
- Canvas Debugger. Tutorial on using Firefox developer tools to debug WebGL shaders.
- Car Paint Shader Paid. Simple shader setup that lets you easily create a variety of different car paint finishes.
- Casual effects by Morgan McGuire. Morgan McGuire's site with real-time rendering articles, research papers, and graphics data.
- Catlike Coding. C# and shader tutorials for Unity.
- Cel-Shader Playlist (Your Sandbox). Cel-shading playlist (17 videos), UE with Lumen.
- CelShader. Cel shader project for Unreal Engine 4.
- Cesium. Open-source library for 3D globes and maps.
- CineShader. Real-time 3D shader visualiser. Uses the Shadertoy API to bring thousands of existing shader artworks into a cinematic 3D environment.
- Circular Color Picker Unity. Shader and script for a circular color picker.
- CodeXL. AMD tool suite with a debugger, profiler, and frame/shader analysis.
- Compact YCoCg Frame Buffer. Paper on compact YCoCg frame buffer for small IBL buffers.
- ComputeToys. WebGPU compute shader editor for experimenting with GPU graphics in the browser.
- CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern C++”. CppCon 2018 talk on rapid prototyping of graphics shaders in modern C++.
- Cracked Ice Shader. Cracked Ice material tutorial.
- Creative Coding with Canvas & WebGL Paid. Workshop by Matt DesLauriers on generative art, interactive animations, 3D graphics, and shaders.
- Custom shaders with Three.JS. Introduction to custom shaders, uniforms, textures, and lighting in three.js.
- Cyanilux. Unity shader tutorials (URP focus). Intro to Shader Graph, HLSL, depth, vertex displacement, dissolve, portals, water, fire. Beginner to advanced.
- Cyos. Online shader editor.
- Efficient Gradient-Domain Compositing Using Quadtrees. ACM Trans. Graph. 2007.
- Embree. High-performance ray tracing kernels that help engineers improve photorealistic rendering performance.
- Everything (or most things) wrong with learnopengl.com/PBR/Theory. Detailed corrections to the PBR theory page on learnopengl.com.
- Experimental analysis of BRDF models. Ngan et al. Eurographics Symposium on Rendering 2005.
- Extra Lights. Blender addon adding physically based, photometric lighting presets to the Add menu.
- Fabian 'ryg' Giesen's Blog. Blog on rendering, optimization, and low-level graphics programming with a focus on practical techniques.
- Fast Filter-Width Estimates with Texture Maps. GPU Gems 1, Chapter 25.
- Fast Terrain Rendering Using Geometrical MipMapping. Fast Terrain Rendering Using Geometrical MipMapping.
- Fast Volume Rendering Using a Shear-Warp Factorization of the Viewing Transformation. Lacroute & Levoy. SIGGRAPH 1994.
- Fft Ocean. Fast Fourier Transform ocean rendering for Three.js.
- Filament. PBR engine, available on all platforms (desktop, mobile).
- Flow Map Shader. Flow Map Shader for Unity3D. Used with sprites.
- FogSprites. Modification of Unity's sprite shaders supporting Fog.
- Fragment Foundry. Interactive fragment shader tutorial.
- Fragmentarium. Program to edit and visualize GLSL shaders, mainly focused on fractals and generative systems.
- Framer Motion. Animation library for React, usable with react-three-fiber via the framer-motion-3d package.
- fSync. Unofficial fSpy/Maya bridge which also creates projection shaders.
- Glass for EEVEE. Shader that lets you make realistic glass with EEVEE.
- Global illumination using photon maps. Jensen, H. W. Rendering Techniques 1996.
- Glow. Unity Shader Graph glow effect test.
- GLSL Optimizer. GLSL optimizer based on Mesa's GLSL compiler. Used in Unity for mobile shader optimization.
- GLSL Sandbox. Online live editor for fragment shaders.
- GlslEditor. Simple WebGL fragment shader editor.
- glslViewer (GitHub). Console-based GLSL sandbox for 2D/3D shaders, for a creative pipeline agnostic to the target platform.
- glslViewer (write-up). Write-up on glslViewer, a live-coding console tool that renders GLSL shaders.
- GPU Zen Blog. Blog on GPU programming and advanced rendering techniques, often featuring excerpts from the GPU Zen book series.
- Graphics for Games. Introduction to 3D graphics programming covering shaders, math, and post-processing, from Newcastle University.
- Graphics Programming Resources. Papers, talks, implementations aggregated by community.
- GrassBending. Replacement for Unity's terrain grass shader with alpha-blended rendering and touch bending.
- gsap Freemium. Animation library for CSS and JavaScript, framework agnostic and usable with three.js, backed by plugins like ScrollTrigger and Flip.
- Houdini Gaussian Splatting Viewport Renderer. HDK/GLSL implementation of Gaussian Splatting in Houdini.
- How does a GPU Shader work?. Academy slides on how a GPU shader works.
- How to Create a Fake 3D Image Effect with WebGL. Tutorial on faking a 3D depth effect in WebGL with displacement maps.
- How to read shader assembly. Guide to reading compiled shader assembly.
- ibreakdownshaders. Explore the math behind shaders.
- Íñigo Quílez. Hardcore math applied to computer graphics by one of the best-known shader authors.
- Instanced Line Rendering Part II: Alpha blending. Covers alpha-blending with triangulated instanced lines.
- Intel Open Image Denoise. Open-source library of high-performance, high-quality denoising filters for ray-traced images.
- Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL, 6/E Paid. Textbook on interactive computer graphics with shader-based OpenGL (6th ed.).
- Intro Three.js. Introduction to pixel shaders in three.js.
- Introduction to shaders. Part 1 of an introduction to shaders using three.js.
- IOR List. Index of Refraction values list for use with 3D applications.
- ISF. GLSL shaders for use in interactive applications.
- Jendrik Illner's blog. Ubisoft 3D programmer posts a weekly summary of articles on 3D graphics. Shader tutorials, real-time rendering papers, etc.
- Khronos: Streamlining Render Passes. Introduces the VK_KHR_dynamic_rendering Vulkan extension.
- Kick.js Shader Editor. Shader editor for the Kick.js WebGL engine.
- Learn OpenGL. Deep rendering concepts from scratch (lighting, shadows, PBR, SSAO).
- Learn OpenGL: Skeletal Animation. Learn OpenGL guest article on skeletal animation.
- Learn OpenGL: Text Rendering. Learn OpenGL chapter on text rendering.
- Let's remove Quaternions from every 3D Engine. Introduces Rotors in Geometric Algebra.
- Light field rendering. Levoy & Hanrahan. SIGGRAPH 1996.
- Light House 3D. GLSL core tutorial series by Lighthouse3D.
- Lightning Boy Studio. Toon and NPR shading for Blender.
- Lily Surface Scrapper. Blender addon that imports materials and shaders from a single URL.
- Lygia. Multi-language shader library of reusable functions.
- Lygia (GitHub). Granular, multi-language shader library built for performance and flexibility.
- Magnum (GitHub). 2D/3D graphics engine for modern OpenGL.
- Makin' Stuff Look Good. YouTube channel with shader case studies.
- Manga/Outline Shader Playlist (Hepner Kamil). Manga/outline shader playlist (18 videos): outlines and toon shaders.
- Marmoset Resources. Baking guides, PBR theory, technical articles.
- Matcap - Spherical Environment Mapping Shader. Matcap - creating a spherical reflection/environment mapping shader.
- Memory Management section on Pbrt. Memory management chapter from the PBR Book (pbrt).
- Microfacet Models for Refraction through Rough Surfaces. Walter et al. Eurographics Symposium on Rendering 2007.
- Mitsuba. A research-oriented retargetable rendering system, written in portable C++17 on top of the Enoki library.
- Moebius-style 3D Rendering (Useless Game Dev). Moebius-style rendering: Sobel filter on depth map, crosshatch, fades.
- Multitexturing using a Blendmap. How to use a blendmap to multitexture a terrain.
- NEORT. Digital art platform for creative coders (fragment shaders, JavaScript Canvas).
- NeRF-Tex: Neural Reflectance Field Textures. Baatz et al. EGSR 2021.
- Node To Python. Blender addon that converts Geometry, Shader, and Compositing node trees into legible Python scripts and add-ons.
- NodeToy. Web node-based shader editor with react-three-fiber export.
- OpenGL 3D Game Tutorials. Beginner tutorial series on creating 3D games with OpenGL.
- OpenGL 4 Shaders. Short introduction to OpenGL shaders by Anton Gerdelan.
- OpenGL/GLSL Shader Programming. Slide deck on OpenGL/GLSL shader programming.
- Optimally Combining Sampling Techniques for Monte Carlo Rendering. Veach & Guibas. SIGGRAPH 1995.
- Path tracing fractals. Path tracing 3D fractals in a fragment shader, by Mikael Hvidtfeldt Christensen.
- Patricio Gonzales Vivo. Shader artist and educator, main contributor to The Book of Shaders.
- PBRT v3. Source code for pbrt, the renderer from the third edition of "Physically Based Rendering: From Theory To Implementation".
- PBRT v4. Ray tracer from "Physically Based Rendering: From Theory to Implementation" book.
- Physically Based Rendering (3rd ed online). Third edition of the PBR book online, with the ray tracer implementation.
- Physically Based Rendering (PBR Book). Full book free online. Definitive PBR reference.
- Physics-Based Animation. Learning resources and papers on physics-based animation.
- PicoGL.js. Minimal WebGL 2-only rendering library.
- Pixel Shaders. Interactive introduction to graphics programming.
- PixelSpirit Elements Deck. Tarot-style deck for learning GLSL shaders, each card pairing a visual element with its shader code, ordered simplest to most complex.
- PixelSpirit GitHub. Code library for the PixelSpirit Elements deck of GLSL shader cards.
- Practical Rendering of Multiple Scattering Effects in Participating Media. Premoze et al. Rendering Techniques 2004: 15th Eurographics Workshop on Rendering.
- Procedural Stochastic Texturing. Modified Unity Standard shader implementing procedural stochastic texturing.
- Ptex. Texture mapping system developed by Walt Disney Animation Studios for production-quality rendering.
- Pyro Shader (Redshift, Arnold, RenderMan) Paid. Pyro and fire shader presets for Redshift, Arnold, and RenderMan.
- Ray Tracey's blog. Sam Lapere's blog, leads the scientific team at EPFL Blue Brain Project. Lots of post about real time rendering
- Ray Tracing Gems. Book of standalone chapters on various ray tracing topics.
- Ray Tracing Gems II. Second volume of standalone chapters on ray tracing topics.
- Ray Tracing in One Weekend. Peter Shirley's free book to get you implementing a basic ray tracer in C++ in about 40 pages.
- Ray Tracing in One Weekend series. Three short books explaining path tracing concepts and building a software renderer from scratch.
- Ray Tracing: The Next Week. By Peter Shirley, builds on the first book by adding effects like textures and motion blur.
- Ray Tracing: The Rest of Your Life. Peter Shirley's last book in the series, covering more mathematical themes for complete renderers.
- Raymarching On Unity 5. Raymarcher in Unity 5.
- Real-Time Rendering. Companion site to the book, massive curated link collection.
- Real-Time Rendering Blog. Blog tied to the Real-Time Rendering book series, with rendering techniques, industry news, and research.
- Real-Time Rendering recommended books. List of recommended books on the Real-Time Rendering site.
- Realistic water shader. Realistic ocean and water shader for Three.js with notes on the approach.
- Reddit Two Triangles. General discussion and showcase for shaders.
- RenderDoc. Free open-source graphics debugger that captures and analyzes frames from DirectX, Vulkan, and OpenGL applications.
- Rendering Resources - Benedikt Bitterli. Test scenes in Tungsten, Mitsuba, and pbrt-v3 formats.
- Resources for Writing Shaders in Unity. Companion resources for the UNITE Boston 2015 talk Writing Shaders: YOU can do it!
- Scene.js. Extensible WebGL-based engine for high-detail 3D visualisation.
- Scratchapixel. Ray tracing, rasterization, math foundations from first principles.
- SDFs by Inigo Quilez. All you need to know about SDFs and other shader magic.
- Semi-Automatic Generation of Transfer Functions for Direct Volume Rendering. Kindlmann & Durkin. IEEE Symposium on Volume Visualization 1998.
- Shader Derivative Functions. Shader derivative functions (ddx/ddy), useful for normals.
- Shader Designer. TyphoonLabs OpenGL shader designer.
- Shader Displacement for EEVEE Paid. Using a few modifiers and a nodegroup, realtime shader displacement in EEVEE is now possible.
- Shader Editor. Tutorial on live-editing WebGL shaders with Firefox developer tools.
- Shader Effects. Unity shader effects.
- Shader Graph Tutorials. Project files for the Brackeys Shader Graph tutorials in Unity.
- Shader Lab Lab. System using T4 Templates to generate Unity ShaderLab code in the editor.
- Shader Park. JavaScript library for interactive procedural 2D/3D shaders, with a built-in raymarcher, SDFs, and boolean operations.
- SHADERed. Lightweight tool for creating and testing HLSL and GLSL shaders.
- ShaderForge. Node-based Unity shader editor, no coding required. Open source and unmaintained.
- ShaderFrog. Online shader editor and asset manager that exports shaders for Three.js, Unity, and other engines, with visual shader editing.
- ShaderGif. Open source home for art made with code (WebGL1/2, JavaScript Canvas, P5.js).
- Shaderific for OpenGL. Documentation on GLSL.
- Shaderific GLSL. OpenGL ES shading language reference.
- ShaderProject. Container for a range of handy Unity shaders.
- Shaders Laboratory. YouTube channel about shaders.
- ShaderShop editor. Visual editor for building shaders by composing shaping functions.
- ShaderShop videos. Videos about ShaderShop.
- ShaderTool Paid. Modern shader IDE for programmers and FX artists.
- ShadowDrawer. Shadow matte shader for Unity.
- Shadowing by Non-Gaussian Random Surfaces. Garry S. Brown. IEEE Transactions on Antennas and Propagation 1980.
- Shaping functions. Set of shaping functions for shaders.
- SHDR Editor. Live GLSL shader editor, viewer, and validator.
- Stack.gl. Modular WebGL shader and graphics tools.
- Stanford Bunny Fur With Unity. Geometry shader generating fur on the GPU.
- Static Object Intersections - Real Time Rendering Resource Page. Collection of intersection algorithms.
- Stylized Comic Book Shader (Chris Folea Makes Things). Stylized comic book shading in UE without post-processing.
- Substance Academy. Free official Substance Painter/Designer tutorials.
- Synthclipse. GLSL shader prototyping tool.
- Temporal light field reconstruction for rendering distribution effects. Lehtinen et al. SIGGRAPH 2011.
- Terrain Rendering Using GPU-Based Geometry Clipmaps. GPU Gems 2 - Chapter 02.
- The Art of Code (channel). Tutorials on shaders using ShaderToy, mostly videos on procedural generation.
- The Book of Shaders. Interactive intro to GLSL fragment shaders.
- The Book of Shaders Glossary. Shader glossary by theme.
- The Interactive Shader Format (ISF) Editor. Online tool for creating and editing GLSL shaders in the ISF format, used in VJ software, live performance, and interactive installations.
- The Shader Permutation Problem - Part 1: How Did We Get Here?. Article on why shader permutations explode in real-time engines.
- The Shader Permutation Problem - Part 2: How Do We Fix It?. Article on strategies for managing shader permutation explosion.
- Three Blender. Blender tool that converts Blender files directly to Three.js.
- Tungsten. High performance physically based renderer in C++11.
- Twigl. Free online shader editor.
- Unity Compute Shader Ray Tracing Practice. Ray tracing compute shader tutorial for Unity.
- Unity Fluid Simulation 2D. Extended camera renders particles, then metaball processing via shader.
- Unity Outline Shader. Source code for an Outline Shader tutorial. Detects edges using the depth and normals buffers.
- Unity Raymarching Collision. Raymarching and rigidbody interaction example.
- Unity Shader Cheatsheet. Collection of Unity shader snippets and gotchas.
- Unity Shader Sketches. Sketches made with ShaderLab in Unity.
- Unity Shader Tutorials. Full project and code for a set of Unity shader tutorials.
- Unity Shaders. Unity project researching shaders and particle systems.
- Unity3D Shaders Learning. Unity3D shader learning examples.
- UnityGPUNoise. Shaders for various noise functions on the GPU.
- USD Arnold. USD Schemas and tools for exchanging Arnold shader information between multiple 3rd party packages.
- Vertex Shader Art. Platform for creating and sharing vertex shaders, with a focus on artistic and experimental uses.
- Vertexshaderart. YouTube playlist about vertex shaders.
- VerticalDissolve. Procedural vertical dissolve shader. Tweak edge color, noisiness, waviness, rim light, emission scrolling.
- VFX good night reading. Curated collection of good reading about VFX and CG.
- VilarVRC. Vilar's shaders for VRChat.
- Virtual ray lights for rendering scenes with participating media. Novák et al. SIGGRAPH 2012.
- Virtual Terrain Project. Tools for constructing real-world terrain in interactive 3D form.
- WebGL 2 Basics. Blog post on getting started with WebGL 2.
- WebGL 2 New Features. Blog post on what is new in WebGL 2.
- WebGL Fundamentals. In-depth WebGL resource covering 3D rendering, lighting, and 2D transforms from first principles.
- WebGl Playground. Editor for working on JavaScript code and GLSL vertex/fragment shaders side by side, with organized formatting and highlighting.
- Whitestorm.js (site). Framework for developing 3D web apps with physics.
- Wind Waker Shader. Cel shading of two thresholds with a blur/gradient between them for Unity.
- Writing an efficient Vulkan renderer. Deep dive on writing an efficient Vulkan renderer.
- xeokit. Web graphics SDK for AEC/BIM applications with 3D tiles, real-world coordinates, and double precision.