ledoge / dwm_lut

Apply 3D LUTs to the Windows desktop for system-wide color correction/calibration
GNU General Public License v3.0
291 stars 31 forks source link

Clarification on how to use in combination with DisplayCAL #31

Open jobec opened 2 years ago

jobec commented 2 years ago

I must be doing something wrong here....

So, I have a benq SW270C.

  1. I started windows fresh. No DisplayCAL profile loader running, no dmw_lut running, all color profiles removed in windows.
  2. I hardware calibrated the screen with Palette Master Element to it's native color gamut.
  3. I ran a Calibrate & Profile in DisplayCAL, which generated a ICC profile
  4. I loaded that profile into windows and I ran a Verification step in DisplayCAL. Everything passed, calibration looking good.
  5. After loading the ICC profile in windows, color managed application behave like they should, windows desktop and other application show over saturated color, as expected.

So far so good and I've been doing this ever since I got this monitor. But then...

  1. I turn that ICC profile into a 3DLUT using DisplayCAL, using it's default setting, and save it to a file.
  2. I remove all ICC profiles from my monitor in windows's color management.
  3. I make sure DisplayCALs profile loader isn't running.
  4. I start dwm_lut, load the 3DLUT cube file and assign it to my monitor as the SDR profile
  5. The windows desktop isn't over saturated anymore, and it looks like color managed applications are also working as expected. No washed out colors, no overly saturated colors. Can't judge color correctness though.

But when I run DisplayCAL's Verification step again, the report shows the colors are completely wrong. Here's the summary.

Criteria | Nominal | Recommended | # | Actual | Result -- | -- | -- | -- | -- | -- Measured vs. assumed target whitepoint ΔE\*00 | <= 2 | <= 1 |   | 4.61 | NOT OK ✖ Measured vs. display profile whitepoint ΔE*00 | <= 1 | |  | 4.95 |   Average ΔE*00 | <= 1.5 | <= 1 |   |  5.39 | NOT OK ✖ Maximum ΔE*00 | <= 4 | <= 3 | 322 | 11 | NOT OK ✖

What's happening here? Why is DisplayCAL's verification step failing?

Did I miss something fundamental in my workflow above?

jobec commented 2 years ago

When I look at the images on this site with normally loaded ICC profiles through DisplayCAL's profile loader and Google Chrome VS no loaded ICC profiles + dwn_lut + chrome, the images when using dwm_lut look a lot less saturated than when using normal ICC profiles. So there's some concept I'm missing here 🤔

ledoge commented 2 years ago

My first guess would've been that you didn't use the right setting when generating the measurement report, but that doesn't really fit in with what you're seeing on that site. The steps you described look correct, but you could be using some wrong settings.

Please upload the ICC profile you generated, screenshots of the 3D LUT and measurement report settings, and the actual measurement report HTML file so I can take a closer look.

jobec commented 2 years ago

Compressed archive from DisplayCAL for the calibration SW270C #1 2022-08-13 16-49 120cdm² D6500 2.2 M-S XYZLUT+MTX.zip

Measurement reports, both when an ICC profile is assigned and when a 3DLUT is loaded through dwm_lut measurement-reports.zip

The 3D LUT file DisplayCAL generated SW270C #1 2022-08-13 16-49 120cdm² D6500 2.2 M-S XYZLUT+MTX.Rec709.B0.0,2.4Gawn65.zip Not sure how to make a screenshot of it 🙈

Verification settings image

3DLUT settings image

ledoge commented 2 years ago

Thanks, those measurement reports tell the whole story!

Both with and without an ICC profile, you're not verifying against Rec.709 but against the display profile itself. What you want to do is:

  1. When using the ICC profile: Check the "Simulation profile" checkbox to verify against the selected profile instead of the monitor one.
  2. When using dwm_lut: Also check the "Use simulation profile as display profile" checkbox to disregard the monitor profile entirely.

With these settings, the measurement reports should look extremely similar in both cases.

jobec commented 2 years ago

Alright... I didn't have a clue what you were talking about and why i needed to change the verification settings. But then I bumped into this post on the displaycal forum: https://hub.displaycal.net/forums/topic/run-measurement-report-on-current-settings/#post-15516

That explanation of those settings makes sense. I tried verifying the ICC profile like you described above but thzt results seem quite a lot worse then expected. So I'll need to play a bit more with it, to understand more what is going on and I'll come back to you.

jobec commented 2 years ago

For my understanding: when applying a generated 3DLUT with dwm_lut, is software like capture one, photoshop, etc still able to display wide gamut photos? I just can't seem to get this to work. With dwm_lut active, chrome isn't showing the rich colors anymore on https://webkit.org/blog-files/color-gamut/ For example the orange of the umbrellas is much more muted then with a normal ICC profile applied.

aufkrawall commented 2 years ago

Everything inside DWM frame buffer is mapped to match Rec709 on your display with the corresponding 3D LUT applied. This is not transparent to applications, nothing to be done about it (except toggling DWM LUT on/off or manually switching to different 3D LUTs generated).

jobec commented 2 years ago

Ok, so it's sRGB everywhere then. No full gamut possible.

Makes sense. But it'll defeat the use of a wide gamut screen while editing photos. Unless I disable dwm_lut and set an ICC profile again whenever I start a color managed application.

It's all clear to me now how it works.

@ledoge this might be interesting to add to the readme. Because I didn't understand that what it actually does is force everything to display properly within the sRGB colorspace, even if it's a color managed application. I thought it only corrected the windows desktop and non-color managed applications.