Home Adobe Substance

sRGB Values in Substance Painter - Questions

polycounter lvl 7
Offline / Send Message
FredCM polycounter lvl 7
Hello!

I have recently read an amazing PBR guide, available at the Substance Academy. However, I got a couple of questions, and I was hoping that someone here could answer them.

Link to the PBR Guide: https://www.allegorithmic.com/pbr-guide

1) If I got things right, I did understand that no dark values for the albedo/diffuse maps should go below the 30 - 50 sRGB color range. And that no bright values for dielectric materials should go above 240 sRGB . However, how exactly do I set this up in Substance Painter? Because when I open up the base color window and pick a color, all the color values (both RGB and HSV) are shown in a 0.0 - 1.0 range. So, how can I "convert" those "0.0 - 1.0" values to "0 - 255"?

2) Moreover, when the document states that, regarding dielectric materials, no values should go above 240 sRGB in the base color map, does it mean that none of the color channels (R, G or B) should exceed 240? Or is there any kind of "overall" sRGB that I am missing?

3) And for the sake of curiosity only: is it safe to infer that the roughness map in the Metal/Roughness workflow is an inverted version of the glossiness map in the Specular/Glossiness workflow, and vice versa?

I posted these questions on the Allegorithmic forum, but it's been 6 days and I got no answer so far.

By the way, I have already tried their PBR Validate filter, which works great for pointing out issues with color values, but yet, this doesn't show me their values in sRGB.

Replies

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    to work it out.. 
    1/255 * <whatever number you have>   

    the cutoffs they list are per channel - not an average.  so no individual channel should exceed 140 or drop below 35 (or whatever) 


    and yes - you should be able to invert roughness to get glossiness - it's a linear image so there won't be any wacky behaviour
  • FredCM
    Offline / Send Message
    FredCM polycounter lvl 7
    Thanks for the reply, poopie!

    I tried the formula you provided to see what I would get for a 30 sRGB value, and the result was approximately 0.117.
    However, as you can see below, the color I get is some kind of middle-tone grey. And given that 30 sRGB is the lowest value I should have in my base color, I was expecting something much darker than this.




  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Yeah...  this is painter being a confusing pain in the arse and also inconsistent with designer's behaviour. 


    What you have there is a value of rgb(96,96,96)  which is what you get if you apply a correction curve of pow(x,1/2.2) to a value of rgb(30,30,30)

    That suggests they're gamma correcting the input, which in turn suggests they're expecting input in linear values  - This is widely accepted as a shit idea for colour textures. 

    Assuming that's the case you need to enter a value equal to pow(0.117,2.2)   which is  0.007843 or (2,2,2) in order to get the value you're expecting to come out. 

    The caveat here is that since I haven't looked at the shader code in painter 2018 it's anyone's guess what they're doing with the numbers once you've fed them in.  Applying the linear conversion to your input value could be the wrong thing to do


    This is a good description of how all this stuff works - it's all useless unless you know what space the initial value is supposed to be in of course.. 
    https://www.cambridgeincolour.com/tutorials/gamma-correction.htm





  • FredCM
    Offline / Send Message
    FredCM polycounter lvl 7
    This took me a while until I could better understand everything you showed.

    But yes, you were right, and that worked just fine! In case someone else needs it, I made a conversion chart for some sRGB key values:


    sRGB  --- Substance Painter input

    30 sRGB --- 0.00902149

    50 sRGB --- 0.0277553

    180 sRGB --- 0.464741

    240 sRGB --- 0.875138


    I also tried using these values along with the PBR Validate filter, and all the values seemed to be right. However, according to this filter, I could still push the maximum albedo color value a little further. So, instead of 0.875 (240 sRGB) I could input a value of 0.930. And I could also lower the minimum albedo reflectance value for metals a little: instead of 0.464 (180 sRGB), I could go as low as 0.420. Then, I don't know whether or not the values I found are 100% correct, or if there is something odd with the PBR Validate filter. But anyway, all the values were green/yellowish-green in the filter.

    By the way, you may note that I've found a different value for 30 sRGB, but it was probably because I entered the whole value (0.1176470588235294), instead of 0.117.

    I really appreciate your help. Thank you!
Sign In or Register to comment.