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

- Instanced Line Rendering Part II: Alpha blending
Continues instanced line rendering, introducing alpha-blending for triangulated lines.
- 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

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

- 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

- Modern (Bindless) Sprite Batch for Vulkan (2021)
A guide to implementing bindless sprite batching in one draw call in Vulkan

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

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