# The Abyss
Rendering is a very large subject that's also not very discoverable. If you come across a well-written resource at any level (introductory blog posts, industry presentations, research papers) that you think others will benefit from, please link it here!
- Please format links nicely as the title of the work.
- If a resource fits in more than one section, include it everywhere it makes sense.
- Feel free to leave a note after the link to add extra information or context.
- Leave potentially outdated resources as-is and mark with a note, unless it's misleading or outright incorrect.
## Blogs/Articles
- [Extreme Learning: The Unreasonable Effectiveness of Quasirandom Sequences](https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/).
- [Creating a Directed Acyclic Graph from a Mesh](https://blog.traverseresearch.nl/creating-a-directed-acyclic-graph-from-a-mesh-1329e57286e5)
- [Recreating Nanite: LOD generation](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html)
- [Recreating Nanite: Runtime LOD selection](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html)
- [Visibility Buffer Rendering with Material Graphs](http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/)
- [Exponentially Better Rotations](https://thenumb.at/Exponential-Rotations/)
- [A Trip Through the Graphics Pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/)
- [Raymarched Lanscapes](https://kyndinfo.notion.site/Drawing-Landscape-1d0019e814cf807f984ef8012fba591b)
### Aggregate
- [Wicked Engine Devblog](https://wickedengine.net/category/devblog/)
- [JGLRXAVPOK's Blog](https://jglrxavpok.github.io/): Has a great series of blog posts about meshlet rendering titled Recreating Nanite
- [Graphics Programming Weekly](https://www.jendrikillner.com/article_database/): A rendering engineer's database of graphics articles
## Videos
- [t3ssel8r: Crafting a Better Shader for Pixel Art Upscaling](https://www.youtube.com/watch?v=d6tp43wZqps)
- [t3ssel8r: Giving Personality to Procedural Animations using Math](https://www.youtube.com/watch?v=KPoeNZZ6H4s)
- [SIGGRAPH 2021: Global Illumination based on Surfels](https://youtu.be/h1ocYFrtsM4)
## Tools
## Repositories
- [GPUOpen Effects](https://github.com/GPUOpen-Effects): A github organization that hosts the FidelityFX series of graphics utilities.
## Presentations
- [Nanite: A Deep Dive](https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf)
- [Screen Space Indirect Lighting with Visibility Bitmask](https://cdrinmatane.github.io/posts/cgspotlight-slides/): : An SSAO technique that handles thin objects better than GTAO. The accompanying paper is unfortunately restricted to those with access to the journal it was published in.
- [EA: Stochastic Screen Space Reflections](https://www.ea.com/frostbite/news/stochastic-screen-space-reflections)
## Textbooks
- [Foundations of Game Engine Development](https://foundationsofgameenginedev.com/#fged2): Not available online, but this page has purchase links and samples for each volume.
- [Physically Based Rendering in Filament](https://google.github.io/filament/Filament.md.html)
- [cs418 @ Illinois](https://cs418.cs.illinois.edu/website/#textbook): A fully-online university curriculum that includes a case study of Nanite, among other things.
- [Physically Based Rendering: From Theory to Implementation](https://pbrt.org/)
- [Real-Time Rendering](https://www.realtimerendering.com/)
## Research Papers
Format links to research papers similar to a citation, including the author(s)' name(s), the title of the paper, and the publication date. For example: `Coskey et al., "Incredible Documentation", 2024`
- [Hillaire, "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", 2020](https://sebh.github.io/publications/egsr2020.pdf): Presents a LUT based technique for rendering atmospheric scattering in real time.
- [Jimenez et al., "Practical Real-Time Strategies for Accurate Indirect Occlusion", 2016](https://www.activision.com/cdn/research/PracticalRealtimeStrategiesTRfinal.pdf): Presents GTAO, the SSAO implementation used by bevy. A reference implementation is available [here](https://github.com/GameTechDev/XeGTAO/blob/0d177ce06bfa642f64d8af4de1197ad1bcb862d4/Source/Rendering/Shaders/XeGTAO.hlsli).
- [Bavoil, "Deinterleaved Texturing for Cache-Efficient Sampling", 2014](https://developer.nvidia.com/sites/default/files/akamai/gameworks/samples/DeinterleavedTexturing.pdf)
- [Mayaux, "Horizon-Based Indirect Lighting (HBIL)", 2018](https://github.com/Patapom/GodComplex/blob/master/Tests/TestHBIL/2018%20Mayaux%20-%20Horizon-Based%20Indirect%20Lighting%20(HBIL).pdf): Another SSAO technique.
- [McGuire et al., "A Reconstruction Filter for Plausible Motion Blur", 20XX](https://casual-effects.com/research/McGuire2012Blur/index.html)
- [Stam, "Exact Evaluation of Catmull-Clark Subdivision Surfaces at Arbitrary Parameter Values"](https://www.research.autodesk.com/app/uploads/2023/03/exact-evaluation-of-catmullclark.pdf_recYb4Vs0Gg5PXV50.pdf)
- [Fayolle, "A Zero-Level Set Preserving Technique
for Signed Distance Function Computation
from an Implicit Surface", 2025](https://www.jcgt.org/published/0014/01/09/)
- [Barbier et al., "Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs", 2025](https://wbrbr.org/publications/LipschitzPruning/")
### Restricted Access
The following papers might still be useful to people with access to scientific journals (such as through their university), but are locked to the general public. If you find a public source, please remove it from this section and replace all links to it with the public one!
Format links to these the same as other papers, adding `[RESTRICTED]` before the link.
- [RESTRICTED] [Therrien, Levesque, & Gilet, "Screen space indirect lighting with visibility bitmask", 2022](https://link.springer.com/article/10.1007/s00371-022-02703-y): An SSAO technique that handles thin objects better than GTAO.
## By Topic
### Animation/Skinning
- [Wicked Engine: Skinning in a Compute Shader](https://wickedengine.net/2017/09/skinning-in-compute-shader/)
### Anti-Aliasing
### Application/Architecture
- [Visibility Buffer Rendering with Material Graphs](http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/)
### Asset Formats
-
### Color/HDR
- [Optimized Reversible Tonemapper for Resolve](https://gpuopen.com/learn/optimized-reversible-tonemapper-for-resolve/): A fast reversible tonemapper. Useful for MSAA resolve when rendering in HDR to avoid aliasing along very bright edges.
### GPU Compute
- [FidelityFX SPD](https://github.com/GPUOpen-Effects/FidelityFX-SPD): A compute shader that generates texture mipmaps in a single pass, heavily optimized for AMD RDNA gpus.
### Lighting
#### Direct Illumination
- [Wicked Engine: Real Time Area Lights](https://wickedengine.net/2017/09/area-lights/)
#### Global Illumination
- [SIGGRAPH 2021: Global Illumination based on Surfels](https://youtu.be/h1ocYFrtsM4)
#### Ambient Occlusion
- [Jimenez et al., "Practical Real-Time Strategies for Accurate Indirect Occlusion", 2016](https://www.activision.com/cdn/research/PracticalRealtimeStrategiesTRfinal.pdf): Presents GTAO, the SSAO implementation used by bevy. A reference implementation is available [here](https://github.com/GameTechDev/XeGTAO/blob/0d177ce06bfa642f64d8af4de1197ad1bcb862d4/Source/Rendering/Shaders/XeGTAO.hlsli)
- [RESTRICTED] [Therrien, Levesque, & Gilet, "Screen space indirect lighting with visibility bitmask", 2022](https://link.springer.com/article/10.1007/s00371-022-02703-y): An SSAO technique that handles thin objects better than GTAO.
- [Screen Space Indirect Lighting with Visibility Bitmask](https://cdrinmatane.github.io/posts/cgspotlight-slides/): : An SSAO technique that handles thin objects better than GTAO. The accompanying paper is unfortunately restricted to those with access to the journal it was published in.
#### Reflections
- [EA: Stochastic Screen Space Reflections](https://www.ea.com/frostbite/news/stochastic-screen-space-reflections)
#### Light Culling
- [Wicked Engine: Tiled Light Culling Pt 1](https://wickedengine.net/2018/01/optimizing-tile-based-light-culling/)
- [Wicked Engine: Tiled Light Culling Pt 2](https://wickedengine.net/2019/02/thoughts-on-light-culling-stream-compaction-vs-flat-bit-arrays/)
#### Ray Tracing
- [Hillaire, "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", 2020](https://sebh.github.io/publications/egsr2020.pdf): Presents a LUT based technique for rendering atmospheric scattering in real time.
- [SIGGRAPH 2021: Global Illumination based on Surfels](https://youtu.be/h1ocYFrtsM4)
- [Depth Buffer Raymarching](https://gist.github.com/h3r2tic/9c8356bdaefbe80b1a22ae0aaee192db): Used for SSR, SSGI, contact shadows, etc.
### Materials/PBR
- [Physically Based Rendering in Filament](https://google.github.io/filament/Filament.md.html)
### Math
### SDFs
- [Fayolle, "A Zero-Level Set Preserving Technique
for Signed Distance Function Computation
from an Implicit Surface", 2025](https://www.jcgt.org/published/0014/01/09/)
- [Barbier et al., "Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs", 2025](https://wbrbr.org/publications/LipschitzPruning/")
#### Transformations
- [Exponentially Better Rotations](https://thenumb.at/Exponential-Rotations/)
#### Collision/Intersection
-
#### Dynamics
- [t3ssel8r: Giving Personality to Procedural Animations using Math](https://www.youtube.com/watch?v=KPoeNZZ6H4s)
#### Noise
- [Extreme Learning: The Unreasonable Effectiveness of Quasirandom Sequences](https://extremelearning.com.au/unreasonable-effectiveness-of-quasirandom-sequences/): An introduction to quasirandom sequences as an alternative to other common ways of generating noise in graphics
### Meshes
- [Stam, "Exact Evaluation of Catmull-Clark Subdivision Surfaces at Arbitrary Parameter Values"](https://www.research.autodesk.com/app/uploads/2023/03/exact-evaluation-of-catmullclark.pdf_recYb4Vs0Gg5PXV50.pdf)
#### Meshlets
- [Nanite: A Deep Dive](https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf)
- [Creating a Directed Acyclic Graph from a Mesh](https://blog.traverseresearch.nl/creating-a-directed-acyclic-graph-from-a-mesh-1329e57286e5)
- [Recreating Nanite: LOD generation](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html)
- [Recreating Nanite: Runtime LOD selection](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html): Note, there are more blog posts in this series. These are just the highlights.
- [cs418 @ Illinois: Nanite Case Study](https://cs418.cs.illinois.edu/website/text/nanite.html)
### Optimization
#### Batching
-
#### Culling
- [Wicked Engine: Tiled Light Culling Pt 1](https://wickedengine.net/2018/01/optimizing-tile-based-light-culling/)
- [Wicked Engine: Tiled Light Culling Pt 2](https://wickedengine.net/2019/02/thoughts-on-light-culling-stream-compaction-vs-flat-bit-arrays/)
- [Barbier et al., "Lipschitz Pruning: Hierarchical Simplification of Primitive-Based SDFs", 2025](https://wbrbr.org/publications/LipschitzPruning/")
#### Streaming
- [Wicked Engine: Texture Streaming](https://wickedengine.net/2024/06/texture-streaming/)
- [Wicked Engine: Bindless Descriptors](https://wickedengine.net/2021/04/bindless-descriptors/)
### Post-Processing
- [McGuire et al., "A Reconstruction Filter for Plausible Motion Blur", 20XX](https://casual-effects.com/research/McGuire2012Blur/index.html)
### Resource Management
- [Wicked Engine: Texture Streaming](https://wickedengine.net/2024/06/texture-streaming/)
- [Wicked Engine: Bindless Descriptors](https://wickedengine.net/2021/04/bindless-descriptors/)
- [Wicked Engine: Vulkan Video Decoding](https://wickedengine.net/2023/05/vulkan-video-decoding/)
### Sampling
- [t3ssel8r: Crafting a Better Shader for Pixel Art Upscaling](https://www.youtube.com/watch?v=d6tp43wZqps)
- [Ben Golus: The Best Darn Grid Shader (Yet)](https://bgolus.medium.com/the-best-darn-grid-shader-yet-727f9278b9d8)
### Simulation
-
### Temporal Techniques
-
### Volumetrics
- [Hillaire, "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", 2020](https://sebh.github.io/publications/egsr2020.pdf). Presents a LUT based technique for rendering atmospheric scattering in real time
### Voxels
-
### Misc
You can use this section for any works that don't fit into any of the other topics. In most cases though, err on the side of adding a new section. If you decide to add a new section, put it in alphabetical order with the rest.
-