This is the index page for my "Reverse engineering the rendering of The Witcher 3" small series where I select some rendering techniques from "The Witcher 3", analyze them using RenderDoc, then grab DirectX assembly for shaders and finally try to turn these instructions back to readable HLSL shader.
I focus especially on understanding and explaining presented techniques; it's all for learning purposes after all.
The genesis of the series is simply "I want to know how it's done". Having RenderDoc and other tools which allow us to see every stage of the pipeline is great way to learn how games do rendering stuff.
Important: I have not worked on "The Witcher 3: Wild Hunt" nor its expansion packs in any way so all of code and conclusions here are results of my analysis and tinkering.
Here is the current index:
Part 1 - tonemapping
Part 2 - eye adaptation
Part 3 - chromatic aberration
Part 4 - vignette
Part 5 - drunk effect
Part 6 - sharpen
Part 7a - average luminance, part 1 - histogram of luminance
Part 7b - average luminance, part 2 - calculation
Part 8 - the Moon and lunar phases
Part 9 - GBuffer
Part 10 - distant rain shafts
Part 11 - lightnings
Part 12 - stupid sky tricks
Part 13a - witcher senses, part 1 (objects & intensity map)
Part 13b - witcher senses, part 2 (outline map)
Part 13c - witcher senses, part 3 (fisheye effect & final combining)
Someone has done awesome job and prepared Russian version of my posts!
Translation into Russian (parts 1-5)
Translation into Russian (parts 6-10)
I'm the author of HLSLexplorer which greatly helped me in the process of learning HLSL assembly and was invaluable in writing this series. See the post for details, source code and binaries.