This thread is dedicated to the generation of 3D color look-up tables for use with the ReShade
injector, which can be used with Direct3D (8-11) and OpenGL applications/games under Windows (compatibility list
DisplayCAL supports generation of compatible 3D LUTs (in PNG format) for use with ReShade.
Following is a brief overview how to get up and running.
Download the latest version of ReShade
and extract the ZIP file. This should result in a folder “ReShade <version>”. Use the “ReShade Assistant” application to configure ReShade for each application/game you want to use it with. See the instructions on the ReShade website on how to use the Assistant. There's also a discussion & support forum
Installing DisplayCAL and Argyll CMS
Option 1: Creating a new profile and 3D LUT
- Download DisplayCAL.
- Follow the DisplayCAL quickstart guide to set it up.
Option 2: Create a 3D LUT from an existing profile
- Select the "Video 3D LUT for ReShade (Rec. 709 / 1886)" preset under "Settings".
- On the "Profiling" tab, optionally increase the number of patches with the slider. More patches will yield higher accuracy of the resulting profile and 3D LUT.
- If desired, adjust the lookup table size on the "3D LUT" tab. Sizes 16x16x16, 32x32x32 and 64x64x64 are supported.
- Click "Calibrate & profile". Adjust the whitepoint of your display if necessary, then continue on to profiling.
- Wait for measurements and calculations to finish.
Installing the 3D LUT
- Select the profile in DisplayCAL under "Settings". If the profile was initially created together with a 3D LUT, the respective tab should already be selectable. If not, it will be grayed out. In the latter case, you can enable it in the "Options" menu.
- Go to the "3D LUT" tab and select "ReShade" under "3D LUT file format". If desired, adjust the lookup table size. Sizes 16x16x16, 32x32x32 and 64x64x64 are supported.
- If "Create 3D LUT after profiling" is checked, un-check it. The button at the bottom of the window will change to "Create 3D LUT...".
- Click "Create 3D LUT..." and wait for the process to finish.
A window should pop up asking you to install the 3D LUT. Click "Install..." and choose your "ReShade <version>" folder, then click "Select folder". The 3D LUT is now active for all applications/games you are using (or are going to use) with ReShade.
A note on 1D calibration
The ReShade preset is set up to not do 1D calibration, but if you create a ReShade 3D LUT from an existing profile that incorporates 1D calibration as well, or if you have a display profile that incorporates 1D calibration, there are some extra caveats to take care of, otherwise you can skip the following few paragraphs and jump straight to "3D LUT usage" below.
To avoid having calibration applied twice (once through the video card gamma tables and once through the ReShade 3D LUT), you either need to reset the video card gamma tables during ReShade usage, or create a 3D LUT without calibration applied. The former (resetting video card gamma tables during ReShade use, restoring them afterwards) is the recommended and most straightforward way of ensuring the correct calibration state, so I'll only describe the steps necessary to make it work.
You should use the DisplayCAL profile loader that was introduced with DisplayCAL 3.1 and set it to "Reset calibration" (right-click its icon for the menu) before starting any game or Direct3D fullscreen application you use with ReShade. The ReShade 3D LUT needs to have the calibration applied (which is the default, so unless you specifically changed something there's no additional steps to take). Remember to set the profile loader to "Load calibration from display profile(s)" again when you close the 3D application/game.
While this procedure requires (minimal) manual intervention (setting the calibration state with the profile loader), it is the most reliable way to ensure the correct calibration state.
The alternative way of creating a 3D LUT with calibration not applied and relying on the profile loader to keep the calibration loaded has the major drawback that Direct3D applications can still override the video card gamma tables "behind your back" without an easy way to verify it, because the Direct3D APIs allow for different video card gamma tables in desktop/windowed mode and fullscreen mode (and it is not possible to influence the fullscreen video card gamma tables from outside the specific Direct3D application unless using methods such as DLL injection to override the necessary Direct3D API calls, and while there are tools like ColorClutch to facilitate this, it can be cumbersome to set up).
3D LUT Usage
When you run the application/game, you should see a ReShade initialization message in the top left corner. A message "Color Look Up Table Shader 1.0" should appear in the center of the screen, and you can toggle the 3D LUT with the "HOME" key (edit ColorLookupTable.fx to change this key).