Home Adobe Substance

Substance Designer to Marmoset & SRGB?

Dave Jr
polycounter lvl 9
Offline / Send Message
Dave Jr polycounter lvl 9
Hi,

I am currently using Substance Designer to create textures and come across a few issues...

I understand that realistically, Roughness should be linear space and therefore Not SRGB whilst Albedo requires SRGB but within SD there are no options allowing me to have one off whilst the other on, if I turn SRGB off for roughness it turns it off across all outputs and vice versa.

My textures have all been created with the default SRGB enabled, which is fine for albedo but not for roughness... of which when I rendered in marmoset looked great but that's because marmoset's default roughness setting had SRGB off.... which means its misinterpreting my data as linear when its obv not.

Surely if im using quixel-scanned data values that expect my result to be linear this is inaccurate with SRGB is enabled in SD.

How can I fix my maps, so that they are accurate within marmoset and substance? Should I just turn SRGB off in SD? this will make both programs interpret my maps correctly?


In addition, the histogram doesn't give me a median range value for luminosity, purely a range of sceptical values I have no understanding of.
How can I create true PBR textures within Substance designer; using SRGB for Albedo, Linear spaced roughness whilst still being able to view my luminosity values to ensure its correct?


Cheers Dave

Replies

  • oblomov
    Offline / Send Message
    oblomov polycounter lvl 8
    if I turn SRGB off for roughness it turns it off across all outputs and vice versa
    Not sure what you mean by that. Where exactly in Designer's UI do you turn sRGB off ? In the 3D view ?

    You can author textures in sRGB or in linear space independantely in all channels in Designer. What you see in the 2D view is what you get in your file.
    Let's say you create a texture using a uniform color :
    - if you want a value of 30/255 in linear space, just enter 30 in the color slider and you'll get a texture in linear space with a value of 30
    - If you want a value of 30/255 in sRGB space, just enter 30 and you'll get a texture in srgb space with a value of 30
    - if you want to convert textures from sRGB to linear, or the other way round just use the appropriate node ("convert to sRGB" or "convert to linear")
  • Dave Jr
    Offline / Send Message
    Dave Jr polycounter lvl 9
    On 2D view theres an option for SRGB at the bottom.

    Disabling this disables SRGB across the entire project. Enabling enables this across the entire graph.

    I didn't know there was a node to convert to SRGB and vice versa.

    Is there a way to view the range/median of the luminosity?

    Am I correct in regard to having SRGB disabled for roughness in both marmoset and SD?


    The issue Is ive made some maps; they look decent, but because I've used SRGB throughout the project without converting my roughness to linear space; How would I get this to be correct and the same visual? Obviously removing SRGB will make it darker/lighter due to gamma correction.
  • oblomov
    Offline / Send Message
    oblomov polycounter lvl 8
    On 2D view theres an option for SRGB at the bottom.

    Disabling this disables SRGB across the entire project. Enabling enables this across the entire graph.
    No. This button only controls how the currently selected node is displayed in the 2D view. When the button is off, it means you know the texture you have selected is linear and you want it displayed with gamma conversion. Again, the texture in your graph is not changed, it's only the way you view it which is changed (like when you do a zoom in the 2D view, your texture in the graph is not made smaller, it's only displayed smaller).
    Is there a way to view the range/median of the luminosity?
    Not directly, but it's something we can easily add if you need it. What you can currently do is select the whole actual range of the histogram (the part with a white background) and look at the "range" values displayed on the right. The median will be the average of the min and the max value in the range.
    Am I correct in regard to having sRGB disabled for roughness in both marmoset and SD?
    In Marmoset, you should import roughness in linear space. In Designer, you should edit your roughness in linear space.

    More generally, as a rule of thumb : every low dynamic range color textures should be in sRGB except normals, all the others should be linear.

    To be 100% precise : this is not mandatory as long as the color space you export your textures in matches how you import it in the renderer you use (if you have a choice), but AFAIK most people work this way and it makes more sense this way.
    The issue Is ive made some maps; they look decent, but because I've used SRGB throughout the project without converting my roughness to linear space; How would I get this to be correct and the same visual? Obviously removing SRGB will make it darker/lighter due to gamma correction.
    If you have entered gamma corrected values instead of linear values in your roughness texture, and want to quickly make the resulting texture linear again, just insert a "convert sRGB to linear" node at the end of the before the roughness output in your graph. But again, regarding what you posted above, the "sRGB" button in the 2D view only controls how the image is displayed in the 2D view, it does not change the texture itself.
  • Dave Jr
    Offline / Send Message
    Dave Jr polycounter lvl 9
    Ok.. I think I get it.

    So heres just a quick example to demonstrate what I'm still stuck with.

    I make a roughness using values I get from a table; it has standard SRGB values by default;
    V2C4GIM.jpg
    mAeV6Gi.jpg

    I decide I like this Roughness.. but understand it needs to be converted to linear space if I was to go to marmoset and render it there..

    I convert it to linear space
    mgoA6L1.jpg
    uqNP1GM.jpg

    Its now changed my result, making what I got from the table incorrect.

    What if I liked the first result and make it linear space without effecting my results; would I have to manually go back and adjust everything Ive done?
  • Kon
    You don't need to adjust sRGB or Linear values inside of Substance. The software is designed to manage this on its own.
    Color outputs are always sRGB (Albedo, Specular, ...)
    Grayscale Outputs are always Linear (Roughness, ...)
  • Dave Jr
    Offline / Send Message
    Dave Jr polycounter lvl 9
    If that's the case then why do my renders in marmoset with SRGB off for roughness look so different :\?
  • oblomov
    Offline / Send Message
    oblomov polycounter lvl 8
    The shader in the 3D view of Designer expects roughness in linear space, so if you author your roughness based on what you see in the 3D view (as opposed to manually entering specific sRGB roughness values from a table you got from somewhere else) your roughness texture will be de facto in linear space, so you should not add an "sRGB to linear" node to make it linear as it is already linear.
  • Dave Jr
    Offline / Send Message
    Dave Jr polycounter lvl 9
    So if I like what I see in the substance viewport; its fine and its already linear? and I can simply export the map out?
  • oblomov
    Offline / Send Message
    oblomov polycounter lvl 8
    Yes. If you like what you see in the 3D view, the roughness is already linear, and you only need to export the output without any form of conversion. You should then import it in Marmoset as a linear texture.
  • Dave Jr
    Offline / Send Message
    Dave Jr polycounter lvl 9
    oblomov wrote: »
    Yes. If you like what you see in the 3D view, the roughness is already linear, and you only need to export the output without any form of conversion. You should then import it in Marmoset as a linear texture.

    Then my textures look great in marmoset and I was only worried about the technicality of it being linear, have triple checked, my renders are accurate :)

    I was thinking about it the wrong way; thanks for clearing that up!!
Sign In or Register to comment.