Graphics Effects
- Drawing Lines is Hard
Summarizes the problem of GPU line primitives and explores a few different techniques for 2D and 3D triangulated line rendering, and accompany each with a small canvas demo.

- Learn OpenGL: Shadow Mapping
Basic tutorial on shadow mapping

- Instanced Line Rendering Part I
Builds on the foundation from "Drawing Lines is Hard" and uses instance rendering to draw lines

- Grass Rendering Series
Blog post series talks about theory of grass rendering, how to implement that in Godot, and adding animation, interaction, and LOD

- Instanced Line Rendering Part II: Alpha blending
Continues instanced line rendering, introducing alpha-blending for triangulated lines.
- 2D Grass Rendering with WebGPU Compute Shaders
A full walkthrough of a procedural 2D grass renderer, which treats grass as an image generated by two compute passes each frame. It includes a live browser demo and compute shader source

- Six Grass Rendering Techniques in Unity (2022)
This article surveyed 6 different ways to render grass in Unity: static mesh, geometry + tessellation, procedural rendering + compute, billboarding, unity terrains, and impostors.

- Bloom Disasters (2008)
A good introduction on the use of different types of noise for random number generation, focusing on applications in real time rendering

- Using Blue Noise For Raytraced Soft Shadows
Article from the "blue noise guy" talking about how to apply blue noise to raytraced soft shadows

- Efficient Shadows from Many Lights (2015)
Techniques for efficiently rendering shadows from many light sources in real-time
- 5 ways to draw an outline
Discussed 5 techniques for rendering an outline around an object

- Experiments in Hybrid Raytraced Shadows
Explores combining rasterization and ray tracing for shadow rendering

- John Chapman SSAO Tutorial (2013)
A tutorial on implementing SSAO

- Know your SSAO artifacts (2013)
A guide to identifying and mitigating common SSAO rendering artifacts

- Learn OpenGL guest article: Cascaded Shadow Mapping
Learn OpenGL guest article on cascaded shadow mapping, which resolves the resolution issues of the naive shadow mapping

- Next Generation Post Processing in Call of Duty: Advanced Warfare (2014)
Introduced realistic and physically correct post-processing technique with proper bloom. It uses pyramidal filter hierarchy for blooms to improves temporal stability and robustness

- Physically Based Bloom (2022)
Another article introducing physically-based bloom techniques that doesn't depend on a threshold. This prevents various shortcomings with traditional blooms. Can be view as an alternative implementation to "Next Generation Post Processing in Call of Duty".

- Percentage-Closer Soft Shadows
NVIDIA paper introducing Percentage-Closer Soft Shadows (PCSS), based on shadow mapping and percentage‐closer filtering (PCF)

- Procedural Grass in 'Ghost of Tsushima' (2021)
A talk discussing how they generate acres of grass within reasonable memory and performance limits, techniques for rendering and animating individual blades, and methods for making thousands of individual blades of grass look like a natural field.

- Raytraced Shadows in Call of Duty: Modern Warfare (2020)
The story behind how (almost) pixel perfect shadows were introduced into Modern Warfare to make it even more realistic

- Responsive Real-Time Grass Rendering for General 3D Scenes (2017)
A paper on real-time grass rendering with realistic physics with the help of compute shader and the hardware-tessellation pipeline

- Screen-Space Reflections Explained (2021)
A explanation of screen-space reflection with code snippet

- The Transvoxel Algorithm
Eric Lengyel's voxel meshing algorithm for seamlessly stitching together neighboring triangle meshes generated from voxel data at differing resolutions so that level of detail.

- The Quest for Very Wide Outlines
An exploration of techniques for rendering very wide outlines around objects.
