Substrate - Feedback Thread

DFIS was broken last time I tested it (5.2? 5.3?). Totally nonfunctional in my case.

1 Like

genuinely disappointing

A quick question: Currently Substate is not compatible with Raytracing Translucency. Is that something that’s still being worked on? Or will we have to manage with only Raster setups?

I’m using Raytracing to get realistic effects on diamonds, gemstones, etc. Something that’s next to impossible without Raytracing as far as I know…

Sorry for the late reply.

This is not related to Substrate as far as I know. This is a limitation of grooms. The Custom depth value are not rendered with the same anti-aliasing techniques as for the hair samples/color. You can try to offset the hair depth (with a multiply) to get rid off the incorrect depth test in your post process material. This won’t solve your flickering issue in the pixelate pass, as the value won’t be fully stable for the same reason I suppose.

/Charles.

I tried to reproduce that with the TPS project, by setting global illumination / reflection to None, and setting the sky/directional light to static/stationnary, but couldn’t repro the problem with/without Substrate. Feel free to share a repro project.

/Charles.

I’m testing this in our mainline, and some part work, some part don’t work properly (see images below). We try to fix most of the issue we are seeing for 5.5, but could you be more specific on the issues you are seeing? It would help to be sure we are not missing something. Thanks!

Substrate=0

Substrate=1

With these settings in a post process volume:

/Charles.

1 Like

@Charles Actually, I’m talking about the Translucency Ray Tracing feature in the PostProcess. This is at the moment completely incompatible with Substrate (I just see a completely garbled screen if I switch it on).
image

This feature gives results that cannot be achieved with Raster.

Raster (without Substrate):

Ray Tracing (without Substrate):

1 Like

weird, ill look into it when im not busy later, and also, any updates on the DF indirect shadows scaling bug?

oh yea i forgot to mention, i wasnt using direc lights, i was only using spotlights & rect lights & pointlights

The issue that I mentioned related to custom depth for groom assets. it is also available in “SceneTexture: BaseColor (Gbuffer)”, Material AO, Diffuse, etc. Just like a custom depth mask, it appears black from the faulty area in other ID types.
will the offset method work in the case of “SceneTexture: Base Color”?

and regarding flickering. it has all kinds of effects in post-process material. for example, in outline shader when I use world normal, or when I pixelated. it wasn’t the case in older versions of unreal engine but in 5.4 it is flickering.
So is it possible that it’s some kind of bug?

Ah ok! Good to know. I fixed the Lumen’s reflection in our mainline. The RT Translucency is not implmemented for Substrate at the moment. We will try to have an implementation for 5.5.

@Charles Great, good to know that it’s on the roadmap. Looking forward to playing with it when 5.5 comes around!

Hello, I have an issue with volumetric clouds rendering in front of a single layer water material.


I also made a post here about it with a little more detail: Substrate bug with single layer water material?

Hi Oliegrey.
Looks like a bug indeed, I’ll try to reproduce and fix.

@oliegrey This is now fixed and it will be in 5.5. Thanks for reporting.

2 Likes

That was fast, thank you so much Sebastien!

Hi, question about substrate with Lumen.
I found that lumen did some effect on SSS backlit, but when substrate on, this effect is gone.
Here I did a 5.3 test scene with substrate turn off, defaulit lit material, putting a point light on the back. I really like to get the light passing through ears.


But when I turn on substrate, the light are “block”, nothing changed whether I turn on/off lumen.
Anyway to fix that?

Hello @Harlanq1990 ,

Thanks for the detailed explanations!

It looks like this is not SSS but GI from lumen leaking a bit onto the ear if I understand correctly.
We will try to reproduce and fix if it is a difference when Lumen is enabled (since this is 5.3, Substrate and Lumen would have evolved). Adding a task.

Hello, I am really excited about Substrate and have been using it for a while. But now stucked with a strange problem caused by Nanite tesselation. I have created material via Triplanar pypeline so it must be working in real and local space. The problem appears when i switched to the Local space and Nanite displacement on. It just breaks the material. Could anyone explain how to use Substrate with Local space Triplanar Nanite Sisplacement?
Here what`s Log says

LogShaderCompilers: Warning: Failed to compile Material /Game/Materials/Master/Master_TRI_WS1.Master_TRI_WS1 (MI:/Game/Materials/Master/Master_TRI_WS1_Inst.Master_TRI_WS1_Inst) for platform PCD3D_SM6, Default Material will be used in game.
/Engine/Generated/Material.ush:4390:210: warning: implicit truncation of vector type [-Wconversion]
FSubstrateData Local142 = Parameters.SubstrateTree.PromoteParameterBlendedBSDFToOperator(GetSubstrateSlabBSDF(Parameters.SubstratePixelFootprint, Local131, Local132, float3(1.00000000,1.00000000,1.00000000), Local141, 0.00000000, 0.00000000, float3(0.00000000,0.00000000,0.00000000), 1.00000000, 0.00000000, 1.00000000, float3(0.00000000,0.00000000,0.00000000), 0.00000000, 0.00000000, 0.00000000, 0.00000000, float3(0.00000000,0.00000000,0.00000000), Local141.x, 0.00000000, float2(0.00000000,0.00000000), 0.00000000, 0.01000000, false, true, 0, Parameters.SharedLocalBases.Types) , 0, 0
, 0, 1);
^
/Engine/Generated/Material.ush:4423:35: warning: implicit truncation of vector type [-Wconversion]
PixelMaterialInputs.Displacement = Local154;
^
/Engine/Generated/Material.ush:4660:210: warning: implicit truncation of vector type [-Wconversion]
FSubstrateData Local142 = Parameters.SubstrateTree.PromoteParameterBlendedBSDFToOperator(GetSubstrateSlabBSDF(Parameters.SubstratePixelFootprint, Local131, Local132, float3(1.00000000,1.00000000,1.00000000), Local141, 0.00000000, 0.00000000, float3(0.00000000,0.00000000,0.00000000), 1.00000000, 0.00000000, 1.00000000, float3(0.00000000,0.00000000,0.00000000), 0.00000000, 0.00000000, 0.00000000, 0.00000000, float3(0.00000000,0.00000000,0.00000000), Local141.x, 0.00000000, float2(0.00000000,0.00000000), 0.00000000, 0.01000000, false, true, 0, Parameters.SharedLocalBases.Types) , 0, 0
, 0, 1);
^
/Engine/Generated/Material.ush:4693:35: warning: implicit truncation of vector type [-Wconversion]
PixelMaterialInputs.Displacement = Local154;
^
error: validation errors
NaniteRasterizer.dxil:7735:62: error: Instructions should not read uninitialized value.
note: at ‘%1962 = fmul fast float %1520, undef’ in block ‘#74’ of function ‘MicropolyRasterize’.
Validation failed.

Thank you for reporting this! Indeed, this is a problem we have recently identify on our side. There is no known workaround at the moment. I will keep you posted once we found the root of the issue.

/Charles.

1 Like