Home Adobe Substance

[Solved] How can I achieve consistency between Substance Designer and Quixel Mixer?

hghtch
node
Offline / Send Message
hghtch node
Hi,
this might be a noob question, but when I'm importing the Substance-exported bitmaps into Mixer/Bridge, the base color gets ridiculously brightened. I already tried to counter this by darken the source material, but the results are not quite what I want, and I'd rather know the reason why this is happening. I tried to adjust the albedo in Mixer to somewhat get a result comparable to Substance, but it never gets quite there. I guess much has to do with lighting, so I'd need to take a look if I can get the Mixer HDRIs to use them in Substance, to atleast get the same lighting conditions. But the difference is so severe, that this can't be the only reason. Could it has to do something with the substance compression/image type?
Thanks for any help in advance.

Substance:

Mixer:

Replies

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    its be a combination of mismatched colour spaces and the fact that in mixer the plane is facing towards the sky
  • gnoop
    Offline / Send Message
    gnoop polycounter
    That much of a difference might be just Substance Designer saving in 32 bit  tiff or exr with  extra gamma applied .  Set it to linear or export into regular 8 or 16 bit
  • hghtch
    Offline / Send Message
    hghtch node
    Alright, thanks for the input. I figured the problem was I exported in png (32 bit) while all Quixel surfaces use jpeg (24 bit). So yes, bit depth was the problem, though I read that png also adds gamma on it's own, further shifting the original gamma.

    Though I guess there is still a problem with the color space, as the jpg is not exactly as the png/2D Viewport.
    Ok, I solved this by exporting png from SD and then converting them with ps.
  • gnoop
    Offline / Send Message
    gnoop polycounter
    Why jpg, a compressed format.   Mixer loads tiffs and pngs too
  • hghtch
    Offline / Send Message
    hghtch node
    gnoop said:
    Why jpg, a compressed format.   Mixer loads tiffs and pngs too
    No matter what output settings I set for the output nodes, the incorrect gamma stays the same as long I use png as export format. There is no setting for 16 or even 8 bit sRGB, and linear didn't do the trick either. and after looking up what Quixel uses for their materials, I figured that the issue has to do with the bitrate difference between png and jpg. I'd rather use png, but I wasn't able to get it working.




    So although jpeg is compressed, I find it acceptable. I combine them with mega scans either way, so having the same basis isn't too bad. Though I still would like to know how to get it working with png.

    Edit:
    Alright, I guess I was being dumb; I can just convert the 32b output png to 24 bit.

    To batch-convert the PNGs exported by Substance with default settings (16bit greyscale or 32bit RGBA) to 24bit RGB, I wrote a few python lines doing the job. Script is availible here: https://github.com/hghtch/SubstancePNGtoQuixelPNG


  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Bit depth is not the problem here. 

    The problem is the colourspace in which quixel expects it's inputs to be encoded. 
     it will at some point in the render pipeline apply a curve to bring the image into the correct colourspace for viewing

    Substance will by default export things exactly as you see them in the graph view 
    Prior to the recent colour management release (or if you work with colour management disabled) everyone authored their colour maps so they looked right on screen (i.e encoded the data in sRGB space). 

    If you've done that you have to tell the app that's receiving the exported map that the data is encoded in sRGB space or it will apply a curve appropriate for a map encoded in linear space and you get the results seen above.

    To compound the problem,  apps like ue4 (and possibly quixel) assume that high bit depth(16+bits per pixel) maps are encoded in linear space because that's what they do in the movies and apply a curve suitable for an image encoded in linear space. 
  • hghtch
    Offline / Send Message
    hghtch node
    I looked into it if it could be a linear/sRGB issue, and while the problem looks very similar, Mixer expects 24bit (8Bit/Channel RGB) sRGB images, while Substance exports in either 32bit RGBA sRGB, or 16 Bit Greyscale. By conforming to Mixer standards, all issues were resolved. Though while solving this issue, I first learned about linear/sRGB. I always just flipped the switch in UE4 when I was told to do so, now I understand why. Thanks for the heads up!

Sign In or Register to comment.