0
\$\begingroup\$

Substance Painter appears to add colors together wrongly when selecting "Normal Blending Mode"

The right side is what photoshop does correctly, meaning R+G+B values in the border region never exceed 255. On the left side is what Substance Painter does incorrectly, the green dot appears to have a glow around it.

enter image description here

If there is no quick way to fix this, I will have to export Red and Green and Blue layers individually and blend them together in Photoshop.

enter image description here

\$\endgroup\$
7
  • \$\begingroup\$ Can you walk us through the steps to reproduce your Substance Painter example? \$\endgroup\$
    – DMGregory
    Commented Apr 5, 2021 at 21:26
  • \$\begingroup\$ @DMGregory Added a picture. It's just 2 layers with a mask. It's just like in Photoshop. \$\endgroup\$
    – AzulShiva
    Commented Apr 7, 2021 at 8:19
  • \$\begingroup\$ Hey @AzulShiva, we have exactly the same issue. Did you find a solution within Substance Painter? \$\endgroup\$
    – Florent
    Commented Jan 5, 2022 at 14:15
  • \$\begingroup\$ @Florent I didn't \$\endgroup\$
    – AzulShiva
    Commented Jan 10, 2022 at 14:29
  • \$\begingroup\$ Right-side looks incorrect to me, it has a clear black-ish circle. \$\endgroup\$
    – Kromster
    Commented May 23, 2023 at 17:00

1 Answer 1

2
\$\begingroup\$

From provided image, left variant looks like to be more correct (meaning evenly bright). Where's right variant has a clearly noticeable black-ish circle.

We can also check out the desaturated image (Photoshop -> Adjustments -> Desaturate) on the left looks more even in brightness. Of course even better desaturator would be using color perception ratios (of 0.299R + 0.587G + 0.144B, which is not the case in this case).

enter image description here

To the explanation: IIRC mathematical approach to color handling is not correct, since the colors are written down in non-linear scale.

Aforementioned median result of 192 could be related to calculation being made in sRGB colorspace. If the gamma is set to be default 2.2, then (1^2.2 / 2)^(1/2.2) * 255 = 186, seems kinda close.

So yeah, Painter seems to be doing a better job at accurately mixing colors. Can it be "fixed"? I can not say, sorry.

\$\endgroup\$
4
  • \$\begingroup\$ There are still a few possible reasons why you might want to do gamma-naïve blending. For instance, maybe you want to replicate the output of another program that does the wrong blending, such as a browser. Or maybe the raw RGB numbers are being interpreted as some other kind of mathematical objects, such as for a normal map, and you need a mathematical average. \$\endgroup\$
    – mm201
    Commented Jun 20, 2023 at 14:09
  • \$\begingroup\$ Exactly, I'm using the RGB numbers for a shader I programmed myself, for layering several textures over each other based on the RGB map. (Imagine a dirt path along nature, or icy mountain tops for a terrain map) \$\endgroup\$
    – AzulShiva
    Commented Jun 21, 2023 at 12:24
  • 1
    \$\begingroup\$ @AzulShiva ah, using them as masks, not as RGB textures. I'm not sure if Painter can mix/generate outputs in linear colorspace rather than sRGB. Another thing you can try is to pre-process Painter textures in your game to convert tham back from sRGB to linear: R = (R/255)^(1/2.2)*255. \$\endgroup\$
    – Kromster
    Commented Jun 21, 2023 at 15:18
  • \$\begingroup\$ @Kromster Why haven't I thought of that... I mean they are my own shaders lol \$\endgroup\$
    – AzulShiva
    Commented Jul 15, 2023 at 8:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .