Substrate - Feedback Thread

why are decals just completely broken?
if the opacity value is above a certain value it just turns to black lighting wise


I have this problem how can i fix it?

Seems like PathTracer is not working with substrate foliage translucency (Can be seein in EV Dreams sample)



to implement the two-sided foliage material in Substrate, try the following:

  1. set the root node to two-sided
  2. set the blend mode to masked.
  3. set the slab “use Subsurface Diffusion” to OFF so it uses wrap-approximation
  4. plug the subsurface color into the color input of a Strata Translucence-to-mfp, and put a value of 0.01 into the thickness input

Hi @SebHillaire,

This isn’t exactly feedback, but I wanted to ask if you have considered looking into Filtering after Shading while working on improving physical rendering.

Upsides:

  • It more closely resembles the ground truth representation of glossy surfaces at steep angles and during texture magnification.
  • It eliminates artifacts typically occurring during metal masking.
  • No more pre-multiplying of alpha for transparent surfaces.
  • Implementation into Unreal is relatively straightforward, as Unreal already uses a temporal index for TAA and TSR.

Downsides:

  • Some aliasing artifacts can occur with texture magnification (stairstepping).

I love to hear your thoughts on the matter,

Cheers
Laurens

Hello! I have a problem Baking Lights with Substrate System. After baking using LightMassGPU all materials on the map become grey. I use UE5.4. Used with Static Lightning is ON.
image

new bug, substrate causes shader compilation errors on ubuntu on vulkan

Just playing around with some of the new render settings in 5.4 and noticed the Holdout option for meshes does not work in Lumen while Substrate is active in the project.

I have Lumen Holdouts working in the project with Substrate turned off, and it looks as expected. As soon as you turn Substrate on, Holdouts no longer function in Lumen.

Is there a way around this, or is the Holdout feature not supported with Substrate (in Lumen specifically, not Path Tracer)?

also, glass mats on substrate seems to crash lightmass on ubuntu?

Hello,

@Laurens_t_Jong Thanks for the suggestion. This is something we will consider once the system is in a stable and production ready state.

@dmitry.sind Thanks for reporting. I have added a note for us to look at reproducing that.

@stamisme The Vulkan implementation is not finished.

3 Likes

alright, also some of my teammates (who both use windows and linux) have this crash issue related to baking a map with glass in it, weirdly enough i dont have the error myself on my pc

the error:
Assertion failed: It.LeftIndex == INDEX_NONE && It.RightIndex == INDEX_NONE && It.BSDFIndex != INDEX_NONE [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\Materials\HLSLMaterialTranslator.cpp] [Line: 12143]

UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
kernel32
ntdll

just happened to me now

Hello , i’ve a problem with render movie queue and substrate material that continuosly compiling. Every frame/antialiasing there is shading compilation that slow down the process .
Here the error in the log file:

[2024.05.29-07.22.30:617][206]LogShaderCompilers: Warning: Failed to compile Material /Engine/Transient.Footage CaptureData Material for platform PCD3D_SM6, Default Material will be used in game.
/Engine/Private/SlateElementPixelShader.usf:168:58: error: no member named ‘GetFrontSubstrateHeader’ in ‘FMaterialPixelParameters’
FSubstratePixelHeader SubstratePixelHeader = Parameters.GetFrontSubstrateHeader();

/Engine/Private/SlateElementPixelShader.usf:169:50: error: no member named ‘SubstrateTree’ in ‘FSubstratePixelHeader’
FSubstrateBSDF UnlitBSDF = SubstratePixelHeader.SubstrateTree.BSDFs[0];

For the last few messages: if a way to reproduce is not described (when?, where?, how?, what?, image of materials) we likely cannot fix or even look at the same bug that you are. We are thankful for any bug report but we need details to be able to act. Thanks in advance.

Also please note that we likely won’t patch 5.4 at this time, since Substrate is experimental.

1 Like

Hello! noticed that in the official documentation you have exatly the same description for SSS MFP and SSS MFP Scale.

Hello @dmitry.sind ,
Thanks for reporting that! We will fix.

There is a “Break Material Attribute” Node. So I was wondering if there would be a similar node for Substrate Surfaces where we can break the “substrate surface attributes”.

Hello @Ibtesam_Sadiq ,

Good question. That is not planned this way. A substrate pin can output lots of data from multiple slabs with any topology. So it would be too messy to try to display that information this way.

We do have some workflow & UX improvements in progress that will help you assemble/blend materials with Substrate. So stay tune for more information later!

3 Likes

UPDATE: Got it to work! Reversed the order and enabled Substrate first, then opened the USD stage. Did this in UE 5.4. I’ll try it in UE 5.3 as well.

I am able to open a USD stage with MaterialX (render context) in Unreal (Using the OpenChessSet example).

However, when I enable Substrate all the materials become default checkerboards. Is this not supported?

Tested in UE 5.3.2

Hello @SebHillaire ,

I found another issue while working in a post-process material with the “Scene Texture” node. I am trying to get the decal mask using “Scene texture: Decal Mask” but I am unable to do that. I am also getting the error. The issue is in both the legacy material and the substrate.

so, I want to know if there will be a fix for this issue and if I will be able to get the decal mask from the scene using “SceneTexture: Decal Mask”.