ReShade primer - martymcmodding/ReShade-Guide GitHub Wiki
What is ReShade?
ReShade is a generic post-processing injector for games and video software developed by crosire. Imagine your favorite game with ambient occlusion, real depth of field effects, color correction and more ... ReShade exposes an automated and generic way to access both frame color and depth information (latter is automatically disabled during multiplayer to prevent exploitation) and all the tools to make it happen. It is developed by the one and only Patrick Mours.
How does ReShade work?
Every game has to communicate with a so-called rendering API in order to display its content. On Windows, the most common rendering APIs are DirectX, OpenGL and Vulkan. To customize the game content, one could modify the game itself, e.g. by replacing 3D models, textures and shaders. It looks a bit something like this:
Here's where ReShade comes in: by acting as the rendering API interface, the game thinks it's communicating with the API, when in fact it is communicating with ReShade. ReShade then hands over all communication to the actual rendering API (black arrows). But ReShade also does some communication with the API on its own in order to render custom effects (red arrow).
An example: If a game uses DirectX 9 as rendering API, it normally uses a library called d3d9.dll in the system32 folder as interface to communicate with DirectX. When ReShade is installed, it will stay in the game folder, also named d3d9.dll. Since libraries in the app folder have a higher priority than libraries elsewhere on the system, the game will load ReShade's d3d9.dll instead.
Once loaded, ReShade can load custom effects/shaders, supply them with the required input data and apply them on the game.
Important: ReShade is only the counterfeit rendering API, it does not change the game's rendering in any way by itself! If you install ReShade and use a preset with shaders, this means that ReShade is used to load these custom shaders. A common misconception is that "ReShade looks bad/oversaturates games". This notion comes from the abundance of badly made ReShade presets . ReShade is the interface, shaders/effects are the modules, presets are the settings on the control knobs of the shaders/effects. A badly made preset is neither the fault of the shaders nor the interface. So if ReShade "oversaturates games" this merely means that ReShade was used to load a saturation shader which was then configured to oversaturate the game. ReShade is the speaker, a shader is the piece of music, presets are the settings on the equalizer.
How do I install ReShade?
Download ReShade from its homepage and run the installer. This guide won't cover the miniscule details as the installer steps may vary. In order to install ReShade properly, the correct rendering API has to be selected - a quick online search for the target game usually reveals this information. ReShade supports DirectX 9, 10+ (i.e. DirectX 10, 11, 12), OpenGL and Vulkan. The installer will also prompt you to install a set of example effects. This is recommended but can be done manually afterwards as well.
If installed correctly, a small overlay will show up at the start of the game:
To bring up the ingame GUI, press the GUI hotkey. By default, this is the HOME button (POS1 on some keyboards):
ReShade will then guide you through most of the GUI with a little tutorial, it is strongly advised to follow it. If you skipped it, the GUI page covers it as well. And you can restart the tutorial from within the ReShade GUI at any point.