PC gamers are always looking for ways to get the best graphics quality possible, hence why HD texture packs and mods are so popular. And if your computer can handle it, you can download photorealistic ENB shaders for a huge catalogue of games – but most of these ENB and SweetFX shaders are user-made. What if you wanted to make your own from scratch? Where would you start?
In this Appual’s guide, we’ll be going through the basics of installing and configuring ReShade, a popular shader add-on for DirectX games that has a smaller performance impact than ENB series – thus, ReShade can be used even on older computers for minimal performance impact, whereas ENB typically hooks into the game’s scripts itself, and can chop your framerates in half (though if your computer can handle it, ENB can be much prettier than SweetFX / ReShade – we’ll leave ENB tutorials for another day).
(Optional) Additional shader packs:
- Begin by downloading the Reshade installer package and installing it on your computer.
- Now you’re going to choose the .exe file for the game you want to work with – Reshade will ask you to choose an API, typically you’ll want to use the DirectX version that you’re running the game in.
- You should now have a folder structure in the game folder which contains a ReShade DLL (can be dxgi.dll, d3d9.dll, opengl32.dll, etc), and a folder “reshade-shaders” with a couple subfolders “Shaders” and “Textures”.
- Now you can launch your game and press Shift + F2 to open the ReShade overlay menu. It will show you a brief tutorial, so just go through it.
- To make configuring things a bit easier, click on the Settings button and change the Input Processing option to “Block all input when overlay is visible”.
- If you don’t see any shaders in the main tab, or you downloaded custom shader packs, look in the Settings menu for where ReShade should look for its shaders. Typically It should be <game dir>\reshade-shaders\Shaders and Textures. Then click on “Reload” in the Hometab, and all of the available shaders should appear.
- Now you can enable effects in the Home tab – the variables for configuring the effects are in the lower area, and you can search through them. It’s pretty intuitive, basically like a huge Graphics Options menu.
- One thing to remember is that if you’re going to use depth based effects (HBAO / MXAO, Depth of Field, or some SMAA depth effects), you need to configure the preprocessor definitions according to any notes that are specific for the game you are working on – you can find a huge list of Games and recommended depth-based definitions on the Reshade website, or their forums for any troubleshooting advice.
- After you configure all of the effects, it will take some time to compile all of the shaders and apply them to the game – it will go through this every time you launch the game, or alt-tab back and forth in and out of the game. To make this process faster, you can either delete the shaders you don’t use (by moving them into subfolders), or enable Performance Mode in the Settings tab. By enabling Performance Mode, it renders all of the variables static (meaning they can’t be edited until Performance Mode is disabled), but it will speed up compilation a lot, and also increase the framerate overall (as ReShade won’t be scanning the shaders in the background to see which ones it needs to apply).
How to use SweetFX with ReShade 3.0
If for some reason you want to combine SweetFX with ReShade, you can follow this installation procedure. The only thing to be aware of is that you will not be able to configure SweetFX in real-time through the ReShade GUI inside the game – you need adapt all config variables from a SweetFX config format to the ReShade .ini file.
- Install ReShade as we went through earlier, but do not use the shaders from the GitHub repo – delete them if you already installed them. Technically you could use them all together, but it would create a lot of confusion for a beginner. So just delete the “Shaders” and “Textures” folders where you installed ReShade (in the game directory).
- Now put your SweetFX folder and the Sweet.fx file into the game folder next to ReShade.DLL – don’t copy over ReShade.fx, because it loads Sweet.fx and if you write over ReShade.fx with Sweet.fx, Sweet.fx will be loaded twice and then you’ll have double effects which is super weird.
- Now launch your game, and ReShade will load the Sweet.fx preset. You can now configure SweetFX as usual, such as keeping the game in Windowed mode while tweaking the SweetFX configuration file in something like Notepad++.
Notes About Performance:
ReShade can be used with either minimal performance impact (a few frames loss at most) if you’re only using some color enhancement shaders, or it can absolutely cut your framerate more than half if you’re enabling all the advanced shading techniques. Its generally best practice to play with different things to find the sweet spot, but here is a general idea of what shaders should cost you in terms of FPS (this is accumulative, by the way – per effect).
- Brightness and color correction shaders should generally cost about 1% of your FPS.
- Post-processing filters like SMAA / FXAA should cost between 2% – 5%.
- Sharpening and softening filters should cost about 2% – 5% depending on effect type.
Advanced shaders like depth of field and bloom can cost up to 20%, but this depends on your GPU type and the DOF / bloom techniques being used.
The most expensive shaders will be the various ambient occlusion shaders (MXAO, HBAO, SSAO, etc) which can cost between 30% to 50% of your framerate, but again this depends on your GPU type and the specific shader technique being utilized.
Its really best to try the different shaders that do the same things, to see which versions run best on your PC. For example, its generally agreed that:
- Vibrance > Colorfulness
- LumaSharp > Adaptive Sharpen
- FXAA > SMAA
You can also forego some of these effects if you have a great monitor, for example you can skip using Vibrance shaders by just upping Digital Vibrance in your Nvidia / Catalyst panels. Also, some monitors can do a lot of what ReShade does – for example, monitors that allow Sharpening to be increased through the monitor’s native settings. It’s better to use that with zero performance impact, than using sharpening techniques in ReShade, if your monitor supports it.
General Tips on Applying Shaders
LUT – Stands for “Look Up Table”, and basically contains color correction information from an outside source, which will be a .PNG image. This is one of the best methods of applying color correction to your game with zero performance impact, it just requires some initial setup. You need to grab the blank Lut.PNG from your ReShade textures folder, and then take some in-game screenshots of your gameplay.
Now using a program like GIMP or PhotoShop, merge your gameplay screenshots and the LUT.PNG onto a single layer, and start adjusting the color curves of the screenshots. Only make color edits, do not apply any post-processing, LUT is only used for color correction. Basically, you are adjusting the colors of the screenshots so that LUT will apply these colors in-game! Think of it like Photoshopping your gameplay in real-time.
Now export your work as LUT.PNG, copy it over the original blank LUT.PNG inside your ‘textures’ folder in your game directory, and enable LUT.fx in ReShade. Your game should now appear exactly as you edited the colors to appear in your photo editing program. This is absolutely the best way to apply color correction to your absolute liking with zero performance impact and no additional color-correction shaders.
LumaSharpen – It’s a good idea to set this to an intensity of 1.0, a pattern of ‘Normal’, and then adjust the clamp with debug on so that it will sharpen as much as possible, without creating any white highlights. You can use a clamp of around 0.2 for this.
Film Grain – For a nice subtle effect, you can set the Signal to Noise ratio around 16 (so it will only apply to shadows), the intensity to 1.0, and the variance to however visible you want the film grade to be – try starting at a variance of 0.5 and adjust from there to your liking.
Bloom and Lens Flare – Your options for bloom will typically be Magic Bloom or Ambient Light – its best used in older games that have really ancient-looking Bloom effects, so you can disable the Bloom setting in those games and then apply it through ReShade.
Depth of Field – There’s quite a few DOF techniques available in ReShade, so you generally want to find the one that works best for you, but also be aware that DOF can be weird in some games. It gets applied to the entire screen, so it may blur for example some parts of the GUI or game menus. Generally, Matso DOF or Advanced DOF are the best DOF techniques to use, and then you adjust the near/far blur curves and the blur amount, so that the shader won’t have any effect unless the in-game object is very close to the game camera. Depth of Field effect requires that ReShade be able to access the game’s depth-buffer, and this is generally not possible in multiplayer games (like Battlefield), because people can hypothetically write wallhacks and stuff like that if they have access to the game engine’s depth-buffer.
HQ4X – This can be used to smooth some grainy or pixelated games. The settings are up to you, since it depends a lot on the type of smoothing you need.
MXAO – This is the most intense version of ambient occlusion and will bring your computer to its knees in terms of framerate impact. If your computer can handle MXAO (and the game you’re working with doesn’t freak out and look weird with MXAO being applied), the best way to tweak it is via the black and white debug view, so you can see exactly what you’re tweaking. Also use Indirect Lighting (SSIL) in combination for best effect.
Surface Blur – This is really more for changing the art style of the game, like if you want the textures to appear more like oil paintings (like in DOTA 2).
UI Mask – This is for when you’re using depth-effects like MXAO and DOF, and the effect is being applied to the game’s UI and making it look weird. You can take a screenshot of your gameplay (with UI / HUD visible), then open the screenshot inside a photo editing program, and erase everything except the HUD / UI and make it a transparent PNG. Now when you point UI Mask to this .png file, it will apply the depth-effects to everything in the game except the bits you didn’t erase in the PNG.