Created attachment 119524 [details] Test file for Transform Tool SUMMARY When using Transform Tool on HDR canvas, the preview doesn't show the real colors but a very bright version of them. If the color is bright enough, the preview can go up to white, and if the area is big, it can possibly hurt one's eyes. STEPS TO REPRODUCE 1. Create a new HDR image (I used elle-g10 profile) in 16bit float. 2. Paint with some not too dark colors. (You can use attached image as a test image - it will change the colors from dark orange to very bright reddish orange) 3. Use Transform Tool on it. OBSERVED RESULT The preview is much brighter than the actual colors. EXPECTED RESULT The preview shows the same colors as the image. SOFTWARE/OS VERSIONS Krita version: 4.2.0-pre-alpha (git fb08951) Windows: 10 Qt Version: 5.12.2
Created attachment 119531 [details] Layer preview test image Other places where similar conversion takes place: - layer preview, I think both in Layers docker and when you hold your cursor over the layer preview in Layers docker - color picker showing previous color and the new one that is being picked - "last opened documents" on welcome screen shows it wrong too - it is caused by mergedimage.png and preview.png being converted to SDR while saving (see bug #406710).
- history of colors and colors from the image are also rendered converted to SDR. I know Advanced Color Selector doesn't work with HDR, but those colors around it are useful (and work correctly, at least the history; show a wrong color, but choose the correct one as you can see in Small Color Selector).
There are two ways of showing colors converted to SDR values: A. clipped to 80 nits B. in full glory of HDR brightness Issues mentioned above are using the following way: 1. preview of the Transform Tool: method B. 2. layer preview: method A. 3. color picker: method B. 4. image preview in Last Documents: method A. 5. history of colors: method A. Method B is worse, because it often causes very bright colors to appear in big amounts, which is not desireable.
- Overview docker also shows the image in SDR (behavior A)
7. Palettes - behaviour A
(In reply to Tymond from comment #3) > There are two ways of showing colors converted to SDR values: > A. clipped to 80 nits > B. in full glory of HDR brightness > > Issues mentioned above are using the following way: > 1. preview of the Transform Tool: method B. > 2. layer preview: method A. > 3. color picker: method B. > 4. image preview in Last Documents: method A. > 5. history of colors: method A. > > Method B is worse, because it often causes very bright colors to appear in > big amounts, which is not desireable. Glad to see color picker problem mentioned here. But I'm confused. If I draw a very bright white and use color picker(color selector) tool to pick it, it picks a very dim white. Is this what you are mentioning here?
(In reply to Sree from comment #6) > Glad to see color picker problem mentioned here. But I'm confused. > If I draw a very bright white and use color picker(color selector) tool to > pick it, it picks a very dim white. Is this what you are mentioning here? No. Color picker is something different from color selector: color picker is the pipette tool, color selector is the color wheel. It picks the right color, it just draws it wrong in the on-canvas little popup boxes. And it will nearly always be much brighter than the picked color, especially light colors like light grey or white. This bug report is also only related to HDR displays. Your issue is most probably related to misconfiguration of color management, to get help please go to the official Krita forum: https://forum.kde.org/viewforum.php?f=136 or on reddit: https://reddit.com/r/krita . Most probable fix: Configure Krita -> Advanced Color Selector -> make sure "Color selector uses a different color space than image" is *unchecked*.
Git commit 32ab64c90109672c6b363c996d236a203516ab95 by Agata Cacko. Committed on 11/10/2019 at 14:20. Pushed by tymond into branch 'master'. Fix transparency checkers looked white on HDR display On HDR displays before this commit transparency checkers looked white because it was just a SDR image showed in full HDR glory. Hence both light and darker light grey checkers looked just bright white, no different from each other, even though in fact their colors were different. This commit fixes this behaviour by converting the colors properly from SDR/sRGB to Rec2020-pq (or other display format) as it should be done. Related: bug 407238 M +24 -14 libs/ui/opengl/kis_opengl_image_textures.cpp https://invent.kde.org/kde/krita/commit/32ab64c90109672c6b363c996d236a203516ab95
Git commit 5b53507f5abf544e9e33ad9aaf10073e1121a332 by Agata Cacko. Committed on 11/10/2019 at 14:20. Pushed by tymond into branch 'master'. Fix background color conversion Background color should be converted using the monitor profile instead of display converter. M +12 -6 libs/ui/opengl/kis_opengl_canvas2.cpp M +5 -0 libs/ui/opengl/kis_opengl_image_textures.cpp M +1 -0 libs/ui/opengl/kis_opengl_image_textures.h https://invent.kde.org/kde/krita/commit/5b53507f5abf544e9e33ad9aaf10073e1121a332
Git commit 275cf87b66d93cd5ab13b9ea87ac920508666cab by Agata Cacko. Committed on 10/12/2019 at 18:53. Pushed by tymond into branch 'krita/4.2'. Fix transparency checkers looked white on HDR display On HDR displays before this commit transparency checkers looked white because it was just a SDR image showed in full HDR glory. Hence both light and darker light grey checkers looked just bright white, no different from each other, even though in fact their colors were different. This commit fixes this behaviour by converting the colors properly from SDR/sRGB to Rec2020-pq (or other display format) as it should be done. Related: bug 407238 M +24 -10 libs/ui/opengl/kis_opengl_image_textures.cpp https://invent.kde.org/kde/krita/commit/275cf87b66d93cd5ab13b9ea87ac920508666cab
Git commit ab0d7595fd21db5d5988a46770382934a070a2d9 by Agata Cacko. Committed on 10/12/2019 at 18:55. Pushed by tymond into branch 'krita/4.2'. Fix background color conversion Background color should be converted using the monitor profile instead of display converter. M +12 -6 libs/ui/opengl/kis_opengl_canvas2.cpp M +5 -0 libs/ui/opengl/kis_opengl_image_textures.cpp M +1 -0 libs/ui/opengl/kis_opengl_image_textures.h https://invent.kde.org/kde/krita/commit/ab0d7595fd21db5d5988a46770382934a070a2d9
*** Bug 428605 has been marked as a duplicate of this bug. ***
Transform tool can now do in-stack preview. It solves the problem of HDR support in the tool.