Substrate - Feedback Thread

Sorry, but the Lightmass process for UVs remains unchanged. The only thing we do in that context is converting Substrate materials to Lightmass materials.

Should the Unlit BSDF still be visible when the Transmittance Color is 1 for a translucent material? It’s invisible in the preview but visible in the world.


Update: I tested with an analogous legacy material in an identical level, and as expected it’s invisible:

This seems to have something to do with fogging. Disabling Apply Fogging makes the material fully transparent. However this has the side affect of, well, not fogging the material when the transmittance is not 1. This makes it visible through fog from far away:


Hello,

I think what you are looking for is coverage control using the Substrate coverage node. This one will behave like the opacity of the legacy system. Opacity in legacy == coverage. Not transmittance. Using that node, it should work as you expect.

Fog scattering is harder to resolve for transmittance. The correct way would be to integrate the fog scattered light in between each translucent surfaces. But as you can imaging that is would be too expensive (each surface are rendered in isolation without knowledge of anything else). So we do an approximation which is not identity in some cases. The legacy ThinTranslucent shading model has the same problem you describe here (because there is no accurate solution for that in real time, unless you integrate scattering in between each surfaces interaction as I mention above).

I have added a note to add these details to the documentation when we update it.

UE 5.5 Crashes when I enable substrate:
It is related to post-process material. if you add scene texture with Shading model Color ID and attach it to unlit BSDF it crashes the engine with substrate enabled but it was fine in the old lagecy material system.

Can’t share screenshots because it won’t let me open the project after conversion.

Error:

LoginId:4a5eef4d44a98418791cd39c8ca0a9ce
EpicAccountId:337a7e269326490f931ae031b64c3111

Assertion failed: View.SubstrateViewData.SubstrateGlobalUniformParameters != nullptr || !IsSubstrateEnabled() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Renderer\Private\Substrate\Substrate.cpp] [Line: 704]

UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_Renderer
UnrealEditor_RenderCore
UnrealEditor_RenderCore
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_RenderCore
UnrealEditor_RenderCore
UnrealEditor_Core
UnrealEditor_Core
kernel32
ntdll

Hi,
Thanks for reporting.

Sorry but I could not repro in the incoming 5.5.1. By creating the shader itself with substrate enable or even after conversion. Maybe there is another case failing I have not encountered. Hard to tell without a project or material.
Or it got fixed when I fixed the shading model issues reported above (missing some data and missing unlit ID/Color, that is fixed now).

1 Like

(missing some data and missing unlit ID/Color, that is fixed now)

I wanted to check if these issue were fixed on not when I encountered the crash. to be clear these are fixed in 5.5.1 and not in 5.5.0. right?
and also let me know if base color related to hair shading model is also fixed or not because when i checked in in 5.5.0. I can still see black color covering the actual base color of hair shading model when I use scene texture(Base Color - Gbuffer ID)

I should have linked this in my original post but this is related to a previous post I made asking whether transparent unlit substrate materials should use coverage weight for their opacity. It sounds like the answer is yes.
There are a couple things that cause confusion about this that might be worth revising. First, as I mention in that post, the Substrate documentation says:

Substrate Operators do not work with all Substrate BSDFs. Only Substrate Slab BSDF and Substrate Simple Clear Coat can use these Operator nodes.

This made me assume that unlit materials are supposed to achieve transparency through their transmission rather than use the Coverage Weight Operator. Does this note not apply to Coverage Weight?
Second, the built-in Substrate UE4 Unlit Shading material function under Substrate Building Blocks has an Opacity pin, but does not use Coverage Weight.



It sounds like this is incorrect.
Thanks for your time.

1 Like

Is there a fix for continuous recompiling with MRQ when Substrate is enabled in 5.4.4? I’ve seen the errors listed in thread linked here.

1 Like

Hi,
Answers to the last posts:

  • hair shading model is showing material data in the gbuffer on latest 5.5.1 for me. So it should all work as far as I can see and could test. Groom/hair strands are not working yet, will be fixed when we get to it.
  • Yes, Coverage node works with unlit now. This has probably been added after that first documentation got set up. Substrate is still evolving (Beta in 5.5) and documentation will get updates when we get our heads out of the water.
  • I added a note to see if we can reproduce that bug with MRQ and fix it. Thanks for reporting!
2 Likes

I have never seen that before. Without more details to reproduce: I do not know more.

Seems like the MRQ recompiling issue happens only when both Substrate and the Metahuman Plugin are enabled.

1 Like

Its probably started to happen when i swiched to 5.4 from 5.3. Even in the new projects its like this. When i enable substrate material, water changes.

Hi, I had originally posted this in the MegaLights feedback thread and they advised me to drop it in here instead. In a nutshell, been experimenting with 5.5 and if I have Substrate enabled and then enable MegaLights I get a consistent crash mentioning SubstrateGlobalUniformParameters != nullptr || !IsSubstrateEnabled(). If I disable MegaLights again the level works as expected.
(full error is in in the link below)

Okay i fixed it, somehow water materials pins were wrong.

Hello,
Substrate support for MegaLight is minimal in 5.5 unfortunately. We currently have substrate running with MegaLight in the Main branch (for 5.6) and used for projects. So I believe this crash does not happen anymore.
Thanks!

1 Like

Do unlit materials simply ignore the transmittance color when the blend mode is additive?

Also, does Responsive AA do anything in a Substrate material?

question, is there ever going to be SSS + Opacity (combined) support in substrate or is it better for me to start working on my own implementation of that?