Material Discrepancy When Using Substance Plugin to Import SBSAR into UE5

I am attempting to use the Substance Plugin for UE5 to import a .sbsar file into UE5 while retaining editable control of the various parameters which I have exposed in Substance Designer for this purpose, such as how loose the weave is, how many stray strands there are, etc…

The exposed parameters are working as intended; my problem is that, even at their default values, the visible result of the material in Unreal is not the same as it appears in Substance Designer.

Substance

First, there are a few errors relating to how the maps are being interpreted, but more importantly the ambient occlusion appears to be inverted. For what it’s worth, the errors can be removed by changing the compression type on the individual maps from grayscale to default, but this does not fix the inverted appearance.

And since I’m working through the Substance Plugin, I only have control over the exposed parameters, and not the actual node graph of the material.

I thought I would be clever and include an “invert grayscale” node on my ambient occlusion in Designer, with the “true/false” as an exposed parameter, which does allow me to invert the map in Unreal… but unfortunately, the final material output doesn’t reflect the change, which suggests there is something else going on.

Can anyone help me solve this mystery? Thanks!

1 Like

What if you just invert the AO in the UE material (OneMinus)?

2 Likes

Thanks for your reply! That’s a good suggestion, except that I don’t have access to the node graph when using the Substance plugin.

However, when I constructed the material manually using exported maps, I got the same result…

It seems that the problem lies in my own mistaken understanding of what the ambient occlusion input actually does.

I was assuming that passing my AO map into the ambient occlusion input in Unreal would make it immediately visible on the material, but (I think) it only enters the equation when baking lightmaps?

To get the result that I was actually looking for, I went back to Substance Designer and instead of running my AO node into my base material (and then into the outputs) I used a blend node to multiply it onto my base color and exposed the opacity of that blend as a parameter. This gives me my intended result, having the AO visible on the material in Unreal (regardless of light type) with a slider to control its intensity.

2 Likes