Home Unreal Engine

Textures from Substance Designer not displaying correctly in UE4

polycounter lvl 5
Offline / Send Message
Gillespionage polycounter lvl 5
Hey folks!
I am seeing a problem with textures I've created in Designer that are not displaying correctly in UE4. More specifically the problem is that the Albedo/Base Color is super washed out in the engine.

Here's an example texture in Designer with the Display sRGB ON by default


Here's the Texture in UE4 with the sRGB on and off.
With sRGB on, the texture is washed out in the texture viewport and then with it off it looks correct.


In the Viewport, it looks really washed out and nothing like the actual texture does. It's as though sRGB is still turned on.

The Texture Sampler Type for this material is set to Color, but still displays it as washed out if it's set to Linear Color.

I managed to fudge a way to get the texture to display a bit more accurately by exporting the Albedo/Base Color texture out from Designer as Linear and then plugging that into the Color Texture Sampler
Here's the sRBG exported texture on the Material


Then here's the Linear exported texture but with sRGB turned ON


The changes are minimal in the viewport when you turn sRGB off, but then in the texture viewer, it's much darker.
As a further experiment, I made a new Material with a Linear Color Texture Sampler Type just to see if it was any different to the Linear texture inside a Color Texture Sampler, but the results were not that different


So in summary, a workaround is to export the Albedo/Base Color as Linear from Designer, then plug it into a Color Texture Sampler with sRGB turned on in UE4. (!?!?!?)
Has anyone else found a better solution? Do we need an update for Designer that displays textures as they would be in UE4? Is there a magic setting in UE4 that I am missing?
I don't seem to get these problems with textures from Painter. Could another workaround be to get the materials from Designer to Painter and then export them from there?

Any help or advice would be much appreciated. 
Cheers!

Replies

  • Gillespionage
    Offline / Send Message
    Gillespionage polycounter lvl 5
    SOLUTION
    Ok! I found the real cause of the problem. The real cause is that Designer is exporting the Textures out at 16bit. Even if you set the Output Format to 8 Bits per Chanel it gives not a flying cluck.
    The real solution is annoying still a pretty hacky fix, but it works none the less.

    The solution is to put a node in just before the Output and set that not to Absolute 8bit. The node can be anything really. In my case the final node before the Albedo Output was a Blend, so I just set that to 8bit.

    I found the solution here
    https://forum.substance3d.com/index.php?topic=15567.0

    Kind of crazy that this post is from 2017 and it's still a bug.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Are you exporting pngs? Cause I remember having the same issue with png and tga solved it for me.
  • Gillespionage
    Offline / Send Message
    Gillespionage polycounter lvl 5
    These were all pngs, but I did also try targas and got the same problem.
    I found the solution in the end though and have posted it above  =)
  • poopipe
    Offline / Send Message
    poopipe high dynamic range
    It's because unreal expects you to be using a colour managed workflow for high bit depth images - grownups (ie those working in film) store textures in linear space, if you do that 16bit textures works fine.

    You can either work with color management In designer or use legacy and convert your colour maps from sRGB to linear before output. 

    I'd recommend the former
  • BradyJ
    Offline / Send Message
    BradyJ triangle
    I've had the same problem before! My solution was the same one, just place any node before your output and export it at a different bit rate. I wonder why it needs to be 8 bits to work correctly with UE4? Would love to know more about this.
Sign In or Register to comment.