Shaders

Shaders are small programs that runs at certain steps in a graphical pipeline. Older systems that do not support shaders are called a fixed function pipeline. The detail on how the shaders work and are setup depend on the Graphic Api one is using. There are is also computer shaders that can be used for graphic and other things.

Shader Language

The language used to write a shader depends on the graphical API used.

Type

Vertex (VS) - 2001

Perform operations such as transformation, skinning and per-vertex lightning. Works on a single input vertex and produce a single output vertex.

Vertex Shader Tricks - 2014

Ice Shader – Hard Edges in Vertex Shader - 2019

Correctly interpolating view/light vectors on large triangles - 2013

Non-Scary Shader Intro 2: Vertex Fun - 2018

Fragment (FS) / Pixel (PS) - 2001

Takes interpolated data for a primitive and generates per-pixel data such as color.

The Team Color Problem

Tech Note: Shader Snippets for Efficient 2D Dithering - 2018

Tessellation Control (TCS) / Hull Stage - 2009

Tessellation Modes Quick Reference - 2016

History of hardware tessellation - 2010

Tessellation In Call Of Duty: Ghosts - 2014

Tessellation Evaluation (TES) / Domain Stage - 2009

Geometry (GS) - 2008

This stage gets a whole primitive (point, line or triangle) and can then discard it emit one or more new primitives.

Introduction to Turing Mesh Shaders - 2018

Geometry Shader Adventures, Mesh Triangle to Particle - 2018

Mesh Shader Possibilities - 2018

Draw Anti-aliased Lines with Geometry Shader

Mesh Shader

GL_NV_mesh_shader Simple Mesh Shader Example - 2020

[video] Advanced Mesh Shaders | Martin Fuller - 2020

[video] Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12 | Shawn Hargreaves - 2020

Coming to DirectX 12— Mesh Shaders and Amplification Shaders: Reinventing the Geometry Pipeline - 2020

Quick Introduction to Mesh Shaders (OpenGL and Vulkan) - 2020

Geometry Reinvented with Mesh Shading - 2019

Variable Rate Shading

Boost rendering performance with Variable Rate Shading | Game Developers Conference 2019 - 2020

[video] Tech Focus: What Is VRS And Is It A Next-Gen Game-Changer? Variable Rate Shading Analysis! - 2020

Iterating on Variable Rate Shading in Gears Tactics - 2020

Boost rendering performance with Variable Rate Shading | Game Developers Conference 2019 - 2019

Variable Rate Shading: a scalpel in a world of sledgehammers - 2019

Easy VRS Integration with Eye Tracking - 2019

Variable Rate Shading: first impressions - 2019

Iterating on Variable Rate Shading in Gears Tactics

Software-based Variable Rate Shading in Call of Duty: Modern Warfare - 2020

Shader Tutorials and Examples

Animated Light Cookie Shader (Cloud & Tree Shadows) - 2020

Dissolve Shader Breakdown - 2020

My take on shaders: Grass Shader (Part I) - 2019

Getting started with shaders: signed distance functions! - 2020

Sprite Glow/Outline Shader Breakdown - 2020

Paper Shader in Unity - 2020

Paper Burn Shader in Unity - 2020

Thermal/ Stealth Vision Effect - 2019

Making a Glass Shader, Part 1: GrabPass & Refraction - 2019

Making a Glass Shader, Part 2: Highlights & Reflections - 2019

Part 20: Post Processing Effects & Chromatic Aberration - 2019

Stylized Lava Shader - 2020

outline shader - 2019

Making a clean (mini)map using Navmesh and a Shader - 2020

Believable Caustics Reflections - 2019

Curving Corner Texture UVs - 2020

Four Color Gradient - 2020

Fur Shader Tutorial - 2019

Grass Shader - 2018

Shader Showcase Saturday: Part1 and Part2 - 2018

X-Ray Shader Tutorial in Unity - 2018

Flowmapped-Burn-Shader - 2018

Animated Candle Flame write-up - 2018

My take on shaders: Grass Shader (Part II) - 2019

Alpha to Coverage or Anti-Aliased Cutout - TUTORIAL

Retro 3D - 2015

Clipping Objects with a Plane - 2018

Multipass Shaders (& inverted Hull outlines) - 2018

Shader Showcase #5 Dripping Rain - 2018

Polygons - 2018

Technically Speaking Challenge 1: Retro Shaders

Fire Shader Breakdown

Blowing bubbles with Shader Graph

Math in Art

[video] Flowmaps, gradient maps, gas giants

Shader Studies: Matrix Effect

Watercolour Shader Experiments - 2020

Reference

Real-time Cubism Shader - 2020

Shaders For People Who Don't Know How To Shader: Deferred - 2020

Inverse Lerp and Remap - 2020

Shaders For People Who Don't Know How To Shader: Smooth blending with Sine - 2020

Depth-Based Post Effects - 2020

Accurate Normal Reconstruction from Depth Buffer - 2020

Creating shader animation in Unity - 2020

3D Game Shaders For Beginners - 2019

Writing a Shader Effect Language Part 3: Materials - 2019

Advanced Map Shading - 2019

Improved normal reconstruction from depth - 2019

My take on shaders: Parallax effect (Part I) - 2019

Shader Convertion Part 2 (Liquid, Triplanar, Waterfall) - 2019

Halftone Shading - 2019

Unity 2019 Shader Development - 2019

Cross-Platform Shader Handling - 2019

3D Game Shaders For Beginners - 2019

2d Raymarched Smoke - 2019

ShaderEd - 2019

Quality hashes collection WebGL2 - 2018

The Machinery Shader System (part 3) - 2018

Pseudo-bandlimited pixel art filtering in 3D – a mathematical derivation - 2018

Custom Shaders - 2018

Texture Arrays in Unity - 2018

Basic Math for Shaders - 2018

How I got started with shaders (Non-Scary Shader Intro) - 2018

Image Editor Effects - 2018

Ubershaders: A Ridiculous Solution to an Impossible Problem - 2017

Physical shader framework for Unity - 2017

The Many Meanings of “Shader” - 2017

Evolution of Programmable Models for Graphics Engines - 2017

Technical Art of Uncharted 4 - 2015

Reflection System In Thief - 2014

Reflections And Volumetrics Of Killzone Shadow Fall - 2014

Pixel Synchronization: Solving Old Graphics Problems With New Data Structures - 2013

Intro to Shader Programming - 2013

Minimal setup screen space quads: No buffers/layouts required - 2012

Graphics Programming 4 - 2011

GPU based dynamic geometry LOD - 2010

A little clarification on modern shader compile times - 2020

Graphics.DrawProcedural - 2020

HSV Shader Graph – Hue Saturation Value

Hash Functions for GPU Rendering

System Value Semantics in Compute Shaders - Cheat Sheet

Writing Shaders in VS Code: GLSL Setup

Writing Shader Code for the Universal RP

Case Study: Vector Displacement Mapping in Real-Time

What is shader occupancy and why do we care about it? - 2020