AVS Forum banner

1 - 20 of 121 Posts

·
Registered
Joined
·
1,059 Posts
Discussion Starter #1 (Edited)
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.

Installing ReShade:

Download the latest version of ReShade and extract the ZIP file. This should result in a folder “ReShade ”. 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


  1. Download DisplayCAL.
  2. Follow the DisplayCAL quickstart guide to set it up.

Option 1: Creating a new profile and 3D LUT


  1. Select the "Video 3D LUT for ReShade (Rec. 709 / 1886)" preset under "Settings".
  2. 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.
  3. If desired, adjust the lookup table size on the "3D LUT" tab. Sizes 16x16x16, 32x32x32 and 64x64x64 are supported.
  4. Click "Calibrate & profile". Adjust the whitepoint of your display if necessary, then continue on to profiling.
  5. Wait for measurements and calculations to finish.

Option 2: Create a 3D LUT from an existing profile


  1. 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.
  2. 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.
  3. 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...".
  4. Click "Create 3D LUT..." and wait for the process to finish.

Installing the 3D LUT

A window should pop up asking you to install the 3D LUT. Click "Install..." and choose your "ReShade " 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).
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #3 (Edited)
Kodi might not be supported. Kodi DX9 version seems to work fine with ReShade (only tested the 3D LUT shader) I've added a link to the ReShade compatibility list to the first post.

I've also updated DCG beta to 3.0.3.3 with the following changes:

  • Support additional LUT sizes 32x32x32 and 64x64x64 for ReShade.
  • If using MasterEffect, the 3D LUT will no longer rely on the MasterEffect shaders (previously it used its ReShade.fx and the mclut3d.png file in the MasterEffect folder). This means if you previously installed a 3D LUT using DCG 3.0.3.2 beta with MasterEffect present, you need to edit MasterEffect.h and change "USE_LUT 1" back to "USE_LUT 0", then reinstall the 3D LUT in dispcalGUI.
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #6
ReShade itself has already a performance hit without shaders active, but I've not done any benchmarking. If a loss in performance is noticeable also depends on the system specs and application/game in question.
 

·
Registered
Joined
·
156 Posts
What is a recommended number of patches for a 16x16x16 3DLUT? I know madVR 3DLUT needs more patches (1500-2500) as it can provide better accuracy. I assume Auto-Optimized is a good start (425 patches).

I got it figured out, but it doesn't work with any of my games. I tried Witcher 3 D3D11 x64 and Wasteland 2 OpenGL32 x86. All I get are full-screen patterns of several colors, usually ending with blue full-screen pattern. When I press Home - the image is restored.

Could this be a Windows 10 problem? ReShade and ReShade Framework work perfect fine with Windows 10, but maybe MasterEffect doesn't...
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #8
What is a recommended number of patches for a 16x16x16 3DLUT? I know madVR 3DLUT needs more patches (1500-2500) as it can provide better accuracy. I assume Auto-Optimized is a good start (425 patches).
Depends on the display used. I chose a minimum set as default, and this should be ok for most computer monitors. You can always use the slider to increase the number of patches and thus accuracy. For a 16x16x16 3D LUT, I wouldn't go above roughly 4000.

I got it figured out, but it doesn't work with any of my games. I tried Witcher 3 D3D11 x64 and Wasteland 2 OpenGL32 x86. All I get are full-screen patterns of several colors, usually ending with blue full-screen pattern. When I press Home - the image is restored.
Hmm. Please attach your ColorLookupTable.fx as well as PNG file.

Could this be a Windows 10 problem? ReShade and ReShade Framework work perfect fine with Windows 10, but maybe MasterEffect doesn't...
Note that you don't need a shader pack if all you want is the 3D LUT.
 

·
Registered
Joined
·
870 Posts
ReShade itself has already a performance hit without shaders active, but I've not done any benchmarking. If a loss in performance is noticeable also depends on the system specs and application/game in question.
I am fine now since i rolled back to Stable Kodi 14.2 which is DX9. I feel when i click the Home the change in colors and im damn happy that i have color correction even in my PVR in kodi which is total great because so far i havent found a solution for this. Also i get Color Correction now in my STB that streams to my PC .. great news...
As for the performance i dont feel anything bad ... i am with windows 10 latest beta nvidia drivers with a 970

Kodi might not be supported. Kodi DX9 version seems to work fine with ReShade (only tested the 3D LUT shader) I've added a link to the ReShade compatibility list to the first post.

I've also updated DCG beta to 3.0.3.3 with the following changes:

  • Support additional LUT sizes 32x32x32 and 64x64x64 for ReShade.
  • If using MasterEffect, the 3D LUT will no longer rely on the MasterEffect shaders (previously it used its ReShade.fx and the mclut3d.png file in the MasterEffect folder). This means if you previously installed a 3D LUT using DCG 3.0.3.2 beta with MasterEffect present, you need to edit MasterEffect.h and change "USE_LUT 1" back to "USE_LUT 0", then reinstall the 3D LUT in dispcalGUI.
I have a question... for Madvr i see that the 3Dlut that is created is 65x65x65 but the maximum as you say in latest beta is 64x64x64... is there any real difference between the 2? Also in Madvr there is no bitdepth... sorry if this are stupid questions i just wanna be sure that what i had in my madvr calibration i now have the same with reshade.

thx for the great work man... really really appreciated.
 

·
Registered
Joined
·
156 Posts
Depends on the display used. I chose a minimum set as default, and this should be ok for most computer monitors. You can always use the slider to increase the number of patches and thus accuracy. For a 16x16x16 3D LUT, I wouldn't go above roughly 4000.


Hmm. Please attach your ColorLookupTable.fx as well as PNG file.


Note that you don't need a shader pack if all you want is the 3D LUT.
I tested some more. Here are the games that work fine:
- Diablo 3 (D3D9)
- Fahrenheit - Remastered (D3D9)
- Vampire the Masquerade: Bloodlines (D3D9)
- Pillars of Eternity (OpenGL32)
- Grim Fandango - Remastered (OpenGL32)
- Shadowrun (OpenGL32)

Games that get odd full-screen patterns:
- Witcher 3 (D3D11)
- Dirt 3 (D3D11)
- Wasteland 2 (OpenGL32)
- Deus Ex - Human Revolution Director's Cut (D3D11)
- Battlefield 4 (D3D11)

I am quite certain D3D11 and some OpenGL32 games are the ones not liking this feature (possibly only in Windows 10), but 3DLUT obviously works in D3D9 games and most OpenGL32 games, which means there is nothing wrong with 3DLUT... x64 or x86 makes no difference in this case.

Here's the full package of needed files (7mb), including 3DLUT, for Witcher 3, which shows single-color full-screen patterns instead of game graphics when 3DLUT is applied:
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #11
I have a question... for Madvr i see that the 3Dlut that is created is 65x65x65 but the maximum as you say in latest beta is 64x64x64... is there any real difference between the 2? Also in Madvr there is no bitdepth
The custom 3D LUT shader for ReShade that I'm using is limited to resolutions of 2 to the power of x, e.g. 2 ^ 4 = 16, 2 ^ 5 = 32, 2 ^ 6 = 64... you get the idea. Other sizes won't work due to way the shader works. There shouldn't be much difference between a 64^3 vs a 65^3 3D LUT, but the ReShade shader is limited to 8-bit texture processing, which is not the case for madVR. I should probably disable the bitdepth selection for ReShade as well (initially my hope was an RGBA16 texture format would be supported, but that is not the case as it turns out).
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #12
I am quite certain D3D11/OpenGL32 games are the ones not liking this feature (possibly only in Windows 10), but 3DLUT obviously works in D3D9 games, which means there is nothing wrong with 3DLUT...
Yes I am pretty sure that it depends on the game or API. As ReShade matures, more games might be supported. What you can try is use the 3D LUT stand-alone (remove/rename existing ReShade.fx, then rename ColorLookupTable.fx to ReShade.fx).
 

·
Registered
Joined
·
870 Posts
Thx m8 one last question because I'm trying to figure how this is really working.
I do all the procedure that you describe and i have the files needed where the executable of the app relies but i don't get from where it gets my 3dlut file...basically im asking because my 3dluts are in storage folder of dispcalgui and for examble the one i use in madvr is 98mb but the files that dispcalgui put in the executable folder are under 1mb...is that my calibration? Or reshade knows from the creation of the reshade.fx from where to take the calibration? Its just academic question and i wanna be sure i don't do something wrong.
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #14
I do all the procedure that you describe and i have the files needed where the executable of the app relies but i don't get from where it gets my 3dlut file...
The 3D LUT is the ColorLookupTable.png

basically im asking because my 3dluts are in storage folder of dispcalgui and for examble the one i use in madvr is 98mb but the files that dispcalgui put in the executable folder are under 1mb...
madVR 3D LUTs are stored in an uncompressed 16-bit per channel format, and do not only contain the LUT anchor points (i.e. 65 ^ 3) but 256 ^ 3 grid points. With 2 byte (16-bit) per value per channel times the number of grid points, this results in the pretty large ~96 MB file. If it would only store the anchor points (65 ^ 3), the size would shrink down to around 1.6 MB, and in 8-bit to around 800 KB.
 

·
Registered
Joined
·
156 Posts
Some people on ReShade forums refer to these as "2DLUT's" that emulate 3DLUT's, but aren't true 3DLUT's. I am not sure I follow that...

I also assume that ReShade Color Look Up Table 3DLUT's don't simply adjust the outer layer (100% saturations) of display's colorspace / color gamut and do adjust within colorspace / color gamut outer layer. For example, would these 3DLUT's for ReShade accurately calibrate/correct 25-75% saturation sweep and hue dE's for all colors, given the right amount of patches used?

FYI, there is no performance loss when ReShade 3DLUT is used!
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #18
Is there a way to verify accuracy of created ReShade 3DLUT's via HCFR Calibration?
You can use the verification tab in dispcalGUI. Enable the device link profile checkbox and set it to the correct path. If you update to DCG 3.0.3.4 Beta, this will set the path automatically after 3D LUT creation (select your existing profile under "Settings" if you already have a 3D LUT).
 

·
Registered
Joined
·
1,059 Posts
Discussion Starter #19
Some people on ReShade forums refer to these as "2DLUT's" that emulate 3DLUT's, but aren't true 3DLUT's. I am not sure I follow that...
They are probably confused by the concept of three-dimensional color data stored in a "two-dimensional" image file format that only knows width and height axes. The format the 3D data is stored in doesn't matter though, what matters is how it's used. The PNG file is just a container, you could as well store the 3D LUT data in a text file or a specialized binary format like madVR uses.

I also assume that ReShade Color Look Up Table 3DLUT's don't simply adjust the outer layer (100% saturations) of display's colorspace / color gamut and do adjust within colorspace / color gamut outer layer. For example, would these 3DLUT's for ReShade accurately calibrate/correct 25-75% saturation sweep and hue dE's for all colors, given the right amount of patches used?
It'll adjust all possible 8-bit combinations, with the LUT resolution defining the anchor points (e.g. 64 ^ 3) and the rest being linearly interpolated on-the-fly.

FYI, there is no performance loss when ReShade 3DLUT is used!
It is an additional shader step, but the pixel pipelines of today's graphics cards are probably optimized enough for a negligible performance loss being lost in the normal performance fluctuations.
 

·
Registered
Joined
·
156 Posts
You can use the verification tab in dispcalGUI. Enable the device link profile checkbox and set it to the correct path. If you update to DCG 3.0.3.4 Beta, this will set the path automatically after 3D LUT creation (select your existing profile under "Settings" if you already have a 3D LUT).
I haven't used that feature before... Last I remember dispcalGUI only shows overall colorspace accuracy, not per-color saturation/hue @ specific IRE % or ColorChecker sweeps. Does this device link allow HCFR to inspect ReShade 3DLUT? With madVR 3DLUT's I could easily verify 3DLUT accuracy manually with HCFR. I'm not familiar with this new method - sorry, I might be with the stupid :confused: .

Your latest dispcalGUI Beta release notes mention ArgyllCMS 1.8 beta - can it be downloaded somewhere? Through Zero Install Development option maybe?

There is supposedly another implementation of 3DLUT in ReShade Framework (NOT MasterEffect) called Tuning Palette, which supposedly works with D3D11 games, but I am NOT sure whether its the same thing as Color Look Up Table:
The tuning palette shader has an option to load a LUT from disk (you can specify the location in the options). By default the LUT texture is located in ReShade/CustomFX/textures/, you can either overwrite it or point to another file. The tuning palette shader and therefore also 3D LUT feature (TuningPaletteLUT) is in the CustomFX suite and its configuration is in the CustomFX_settings.cfg not the SweetFX_settings.cfg.
More info here - http://reshade.me/forum/shaderpack-mastereffect/481-how-to-load-a-lut?start=24#7632

 
1 - 20 of 121 Posts
Top