(#) Resources for Graphics Programming
Welcome to the Graphics Programming's Discord knowledge base. This resource is used to collect other resources into a centralized location.
# APIs
## Direct3D
* [Learn D3D11](https://graphicsprogramming.github.io/learnd3d11/)
* [bell0bytes Blog - DirectX Fundamentals](https://bell0bytes.eu/direct-x-com/)
* [3DGEP Blog - DirectX Tutorials](https://www.3dgep.com/category/graphics-programming/directx/)
* [DirectX Specification](https://microsoft.github.io/DirectX-Specs/)
* [Braynzarsoft - DirectX11 and DirectX12 resources](https://www.braynzarsoft.net/)
## Metal
* [Metal Specification](https://developer.apple.com/documentation/metal)
* [Metal Tutorial](https://metaltutorial.com)
## OpenGL
* [docs.gl - OpenGL API Documentation](http://docs.gl/)
* [Guide to Modern OpenGL Functions](https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions)
* [Learn OpenGL](https://learnopengl.com/)
* [OpenGL 4.6 Specification](https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf)
* [OpenGL tutorials by Victor Gordan](https://www.youtube.com/playlist?list=PLPaoO-vpZnumdcb4tZc4x5Q-v7CkrQ6M-)
* [OGLdev : modern opengl tutorials](https://ogldev.org/)
## Vulkan
* [Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated](https://liamhinzman.com/blog/vulkan-fundamentals)
* [SIGGRAPH 2020 slides and notes on Vulkan](http://web.engr.oregonstate.edu/~mjb/vulkan/)
* [Tips and Tricks: Vulkan Dos and Don'ts](https://developer.nvidia.com/blog/vulkan-dos-donts/)
* [Vulkan 1.2 Specification](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/chap2.html)
* [Vulkan Guide](https://vkguide.dev/)
* [Vulkan Tutorial](https://vulkan-tutorial.com/)
* [Brendan Galea's Vulkan Game Engine series](https://www.youtube.com/watch?v=Y9U9IE0gVHA&list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR)
# Shader Programming
## Tutorials
* [Shaders For Game Devs by Freya Holmér](https://www.youtube.com/playlist?list=PLImQaTpSAdsCnJon-Eir92SZMl7tPBS4Z)
* [The Art of Code shader tutorials](https://www.youtube.com/c/TheArtofCodeIsCool)
## Guides
* [3D Game Shaders for Beginners](https://github.com/lettier/3d-game-shaders-for-beginners)
* [Book Of Shaders](https://thebookofshaders.com/)
# Techniques
## Render Graphs
* [FrameGraph: Extensible Rendering Architecture in Frostbite](https://www.slideshare.net/DICEStudio/framegraph-extensible-rendering-architecture-in-frostbite)
* [High-Level Rendering Using Render Graphs](https://ourmachinery.com/post/high-level-rendering-using-render-graphs/)
* [Organizing GPU Work with Directed Acyclic Graphs](https://levelup.gitconnected.com/organizing-gpu-work-with-directed-acyclic-graphs-f3fd5f2c2af3)
* [Render graphs and Vulkan - a deep dive](https://themaister.net/blog/2017/08/15/render-graphs-and-vulkan-a-deep-dive/)
## Tonemapping
* [Community Tone Mapping Guide](/resources/tonemapping/index.html)
* [Dynamic Range, Exposure, and Tone Mapping](https://www.cl.cam.ac.uk/~rkm38/pdfs/tone_mapping.pdf)
* [Filmic Worlds Blog](http://filmicworlds.com/blog/)
* [High Dynamic Range Imaging Book](https://www.cl.cam.ac.uk/~rkm38/pdfs/mantiuk15hdri.pdf)
* [Tone Mapping (slides)](https://www.cl.cam.ac.uk/~rkm38/pdfs/tone_mapping.pdf)
## Image-Based Lighting
* [The Definitive Weta Digital Guide to IBL](https://www.fxguide.com/fxfeatured/the-definitive-weta-digital-guide-to-ibl/)
## Camera
* [Generalized Perspective Projection](https://web.archive.org/web/20191110002841/http://csc.lsu.edu/~kooima/articles/genperspective/index.html)
# Physically Based Rendering
* [Physically Based Rendering: From Theory To Implementation](https://www.pbr-book.org/)
# Raytracing
* [Raytracing in one week-end series](https://raytracing.github.io/)
* [iquilezles.org](https://iquilezles.org/articles) Various articles on raytracing and related techniques
# Various Related Resources
* [Fix Your Timestep](https://gafferongames.com/post/fix_your_timestep/)
* [Finding Your Home in Game Graphics Programming](http://alextardif.com/LearningGraphics.html)
* [Game Math](https://gamemath.com/)
* [A Comparison of Modern Graphics APIs](https://alain.xyz/blog/comparison-of-modern-graphics-apis)
* [Scratchapixel](https://www.scratchapixel.com)
* [The Graphics Codex](https://graphicscodex.com/)
* [noclip : A digital museum of video game levels ](https://noclip.website)