Substrate - Feedback Thread

Glint is based on this paper: Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering | Xavier Chermain’s Page . By default now we use the legacy GBuffer layout for the sake of performance (some features are limited in this case). Make sure that you also have your project set to support Adaptive GBuffer.

The documentation update about all that is in progress.

We automatically enforce simple volume when needed now IIRC. Subsurface scattering post process or the other optically thick models do not make sense as a top layer (they do not handle translucency effects well + other problems) so we automatically do the downgrade to Simple in this case.

1 Like

Yep refraction is there too at 1.5. I’ve set the roughness to 1. I’ve gone in the default ini to raise the substrate byte thing(not at pc, can’t remember the exact name) from 80 to 128. The mean free path to 0.98 with the transmittance helper. The translucent type to surface forward shading. Base color to 1. Editing the roughness seems to work its just that’s it’s not doing the frosting part for whatever reason

Oh I guess this starts in UE 5.7, in the previous version it is not available. Many thanks for the link as well and the info.

Hi, Today I updated unreal to version 5.7. Since unreal 5.6 I developed a set of materials based on substrate system (kinda future proofing). Now I opened one of the projects we had in 5.6, converted to 5.7. First issue was, the project wasn’t opening, crashed as soon as I try to load the lvl. After messing around with the new substrate settings (adaptive GBuffer and bytes per pixel) I realized I have to reduce Substrate bytes per pixel to 35 for project to open. (one detail forgot to mention, we primarily use path tracing) Next issue, is that the glass is not at all behaving the way it use to behave in 5.6. I have posted the master Glass material we use in our projects and in 5.6 this turned amazing results for us. But now, I cannot turn on “is thin surface” for any object since it makes the object white and also for some objects, anything behind the glass is somehow rendered without GI. As of why I need to turn on is thin surface, for some reason, whenever we are dealing with hdri, the hdri behind the glass looks darker compared to reality, but in 5.6 when we were turning on thin surface and then setting IOR to 0, we had perfect glass. I have posted two pictures regarding this issue, one behind the glass, the other outside the glass. Also I have noticed that transmittance color results are completely different from what I had in 5.6 (I have posted two other pictures in this regard, one which the bottles are fully black is 5.7 and the other one is 5.6, material settings are equal) Am I doing something wrong? Thank you in advance for your help

Sepia,

Did you check your post process volume? Is your translucency set to Raster?
Try changing it to Ray Traced and enable Use Ray Traced Refraction:

John

Since we primarily use path tracing, unfortunately changing any of these settings, wont change the outcome.

Even after the release of 5.7.0 issue is still here.

@SebHillaire
for metahuman hairs, Base color view mode looks good now but scene texture for base color looks the same messed up and incorrect. seems like this issue is still here after the release of 5.7

Does Substrate SLW work with decals in recent versions (5.7, UE5-Main?). I see there’s some code in DBufferDecalShared.ush

That makes me think it should work, but I haven’t been able to get it working. Wondering if there’s some secret here, or just still not a supported thing. Works fine on the new Toon BSDF! (red sphere)

Just wanted to ask since I noticed it while poking around with the latest commits on UE5-Main and looking at the new Toon BSDF while working on bringing my own custom BSDF to a more up to date version of UE.
New Toon BSDF is super cool btw, and very useful as another example as to how to set up new BSDFs!

Hi,

Decals are not supported on SLW without Substrate so it is the same for Substrate as of today. You can easily test that yourself using r.substrate=0 to compare.

Hi,

It seems there are many issues there.

  1. Any chance you can share a project to repro the crash issue? Crash at load time is clearly not expected, and I really would like to dive into that
  2. IIRC, the PT has changed its behavior regarding translucent surface. It now takes scattering property into account which would results in different look. In your master material it looks like the base/absorption is set to both base color and transmittance color. This means that your glass will have both absorption and scattering (i.e. diffusion/haziness within the medium. If you want to achieve clear, absorbing medium, you need to set the BaseColor to 0.
  3. If I understand the issue with IsThin and HDRI, is tha the distant elements/atmosphere are missing when seeing through a ThinGlass object. Is that correct?

Thanks for taking the time to report all this!

/Charles.

Hi,

Indeed, if you use Adaptive GBuffer format, the scene texture attribute for hair are not correct during the post process material pass. If you use the Blendable GBuffer format, it should be correct. We will fix that for 5.8.

Thank you for reporting that issue!

/Charles.

1 Like

Hi,

Thanks for your reply, Sadly, due to an NDA, I cannot share the project. But meanwhile I did some more testing to better understand how substrate in 5.7 is working and there are still some unclear points for me.

First as for glass: I change the base color to 0 but that wont fix the issue that we have with HDRI. I try to explain this issue as best as I can. Typically for our lighting setup, we use HDRI plus a directional light. When we look through the glass, if HDRI location height is set to 0, the bottom of the HDRI looks black. To Fix this we found two solutions. One to move the HDRI up, the other to use IsThin and setting the IOR to 0. First solution is only viable when the camera is always behind the glass and never going outside. Since the moment we look outside the glass, the HDRI is deformed (because of the extreme Z axis location).

I have attached screenshots regarding what I explained, I hope its clear. If there is another solution to this issue, then we do not require IsThin to function as it does in 5.6 since that is the only use case of it for us. But we couldn’t find.

Looking behind the glass, IsThin is off, HDRI Z Location 0

View Outside the glass

Looking Behind the glass, HDRI Z Location is set to 80000, IsThin is off

View Outside the glass, but as you can see HDRI is not usable in this state.

For this problem we use IsThin which makes it possible to set the HDRI to 0 and have equal view inside and outside

Behind the glass with IsThin.

Now as for the other problem I noticed during my testing:

For any other material that is not glass, I have prepared a master material with different switches that basically switches different sub surface type in the substrate slab.

For example, I have this main slab which is supposed to be used for materials without any subsurface, and as a result, the sub surface type is set to none.

Then I have this slab for Foliage, which as per my understanding and testings in 5.6, I had to use Two sided wrap as for the sub surface type. And it works beautifully in 5.6. Results are jaw dropping.

Foliage in 5.6

Lastly we have this slab for usual SSS materials like marble. Again based on my testing, the best subsurface type to achieve the results that we were after was Wrap.

SSS in 5.6.

Now in 5.7 it seems that this system has changed. First thing I noticed is that my master material can no longer produce the results that I demonstrated in 5.6, in 5.7 anymore. Neither for Foliage nor for SSS. So I started testing.

I made a simple material, I set the SSS to Wrap, and strangely the result was the look that I use to get from two sided wrap.

Then when I selected two sided wrap, it no longer passes through any light, no matter what value I use in SSS MFP.

SSS set to two sided wrap.

But I read the documentation, and I cannot find any change in this regards. So I’m a bit confused. What am I missing here?

Sorry for the long post, I tried to explain the issues as best as I could.

Thanks in advance

Actually this is already implemented in 5.7 :slight_smile: You just need to enable this CVar: r.HairStrands.WriteGBufferData 3 This adds the cost of writing hair data to the material buffer.

/Charles.

1 Like

Hello, i haven’t seen this mentioned so I’m gonna ask : Is soft source radius on lights getting supported with substrate ?

Enabling substrate in a blank project breaks it as of 5.6.1. Instead of softening the reflection of a light, it does nothing on a source with default source radius, and seems to act exponentially on non-zero source radius. Really missing it for my project :confused:

Maybe i’m doing something wrong but the f90 node on slab doesn’t appear to do anything.
Brand new install of Unreal 5.7
Brand new project
Hardware raytracing enabled
Blueprint only
All default settings for a new install.

This is working on my end when I copy your shading graph.

Here are my Substrate settings in the Project Settings:

And here are the raytracing settings:

That’s interesting. Setting adaptive Gbuffer and 128 Substrate Bytes per Pixel fixed the issue for me. However those were not the defaults on my system. My new install of 5.7 defaulted to Blendable Gbuffer and 80 Substrate Bytes per Pixel.

Wish I knew more about rendering pipelines and such to suggest why but I’m not that kind of developer lol. Hopefully the info helps someone else or the devs fix the issue.

Thanks!

Translucent materials with refraction from IOR or F0 seems to have a lot of problems when not using path tracing, I keep getting things behind the material turning black and a lot of boiling artifacts that make it practically unusable.

@SebHillaire Hi, I found a new problem with baked sparse lighting and clear coat shaders. Somehow, where the skylight should be dampened, it is not on clear coat materials (interior). You can see that static meshes don’t have this problem.

All lights are movable except for the streetlights inside the tunnel and the skylight is set to stationary, sky reflection capture is enabled every frame.

Best regards.