Problem with textures from Substance Painter - Unity3D - Needle Engine

When you switch from URP/Lit to UnityGLTF/PBRGraph there should by the way be a warning in the console that you need to do texture conversion (e.g. swizzling the channels) yourself right now - did you get that warning?

Hm no I have not seen any warning. but maybe I missed it.I can of course send you the model so you can inspect it yourself, that would be great. What texture would you need for it? So what kind of format ( Unity URP, PBR Metallic Roughness ?).

by user 260813948499132416

ah yeah i saw a warning in the console now

by user 260813948499132416

The Metallic (R) Smoothness (A) texture needs to be converted to Roughness (B) Metallic (G). This currently needs to be done manually. Please swap channels in an external software. but this seams to be correct :thinking:

by user 260813948499132416

The one where “URP/Lit in Unity looks correct but export looks wrong” is the one I need :slightly_smiling_face:

makes sense, one moment i upload it for you

by user 260813948499132416

i send you the link in a private message

by user 260813948499132416

OK, it’s a bug in smoothness-roughness conversion export in UnityGltf. Wonder how that escaped for so long, pretty trivial to reproduce.

Two immediate workarounds until the bug is fixed:

  • use PBRGraph material instead with Roughness-Metallic texture (in -GB- slots)
  • set smoothness in Unity for your materials to 0 (will look wrong in Unity but right in export)

Unfortunately it still seems to be displayed incorrectly, it still seems as if the Roughness channel is completely ignored. Materials that should actually look rough are absolutely shiny, like the upper copper boiler. Of course, shaders always deviate from each other in certain ranges, that’s no question, but here something seems to be absolutely wrong, because an absolutely rough object should of course not be 100% shiny.

I’ll send you a new private message with the textures I exported especially for the UnityGLTF/PBRGraph material. They correspond
R=(Occulusion) G=(Rougness) B=(Metallic)

by user 260813948499132416

This one shows the difference

by user 260813948499132416

roughness=1 is a multiplier, same as with smoothness. It’s not the absolute value, it gets multiplied with the roughness value in your textures

I think I found the problem, the project was set as “Color Space: Linear”. I changed it to “Gamma” and now the materials look much more correct.

by user 260813948499132416

That’s definitely wrong!

Please always use Linear

If it looks “more correct” on Gamma that just means there’s an issue elsewhere

The normals in the new files you sent are empty

Could you make a quick reference video from Substance? Especially around these parts:
20221003-121502_Unity.mp4

that looks much better what you have there

by user 260813948499132416

thats from Substance Painter,

by user 260813948499132416

is your project set to gamma or to linear?

by user 260813948499132416