Bug 469036 - layer compositing: color dodge blending mode does not work if the there is an opaque layer beneath.
Summary: layer compositing: color dodge blending mode does not work if the there is an...
Status: RESOLVED INTENTIONAL
Alias: None
Product: krita
Classification: Applications
Component: Layer Stack (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Other Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-27 07:29 UTC by Dhruba Jyoti Terang
Modified: 2023-05-11 07:26 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
color dodge not working while applying white colour to yellow paint ,it appears bright yellow for som reason (3.64 MB, application/x-krita)
2023-04-27 07:29 UTC, Dhruba Jyoti Terang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dhruba Jyoti Terang 2023-04-27 07:29:39 UTC
Created attachment 158477 [details]
color dodge not working while applying white colour to yellow paint ,it appears bright yellow for som reason

Color dodge blending mode not working properly. Trying to add white colour on yellow paint in color dodge blending mode,but it turns bright yellow. how to fix it.
Comment 1 Halla Rempt 2023-05-10 13:02:36 UTC
Thanks for your report. I can confirm the issue. It doesn't happen if the background layer is transparent, but if there's a non-transparent layer beneath, the effect is wrong.

Tested with 53f23e21d4b39503f4879c152cd35e6bf1eb3677.
Comment 2 Halla Rempt 2023-05-11 07:26:04 UTC
Okay, after discussion on the #krita channel, we came to the conclusion that this is expected behaviour, in line with what happens in other applications:

17:32:13 < deif_lou[m]> Well if one paints with white then the formula should have a condition: if (src == 1) 
                        result = 1
17:32:17 < deif_lou[m]> Not sure what to expect if some dst channel is 0 though
17:34:54 < deif_lou[m]> It would give different results deppending on what condition is checked before: "if (dst 
                        == 0) result = 0" or "if (src == 1) result == 1" 
17:39:16 -!- irina [~irina@77-172-26-211.fixed.kpn.net] has joined #krita
17:52:25 < deif_lou[m]> @halla i can confirm it works just like ps
17:54:00 < deif_lou[m]> I changed the luminosity of the bottom layer with the levels in krita and ps and they 
                        behave the same. Also i made the top layer fully white and changes the luminosity of the 
                        bottom layer again even up to 0 and they look the same

So I am closing this as intentional. If you want to achieve the effect you're expecting, then you should add a white background underneath the figure.