Substrate - Feedback Thread

Will strata allow for more control over the shading? For instance, will I be able to eventually add a second specular term to simulate retroreflective materials? It’d be very nice to finally be able to ditch the engine modifications to get retroreflections in.

I want.

I can hang snow, icicles, etc off those corners, add in buildup for dust or blowing particles, etc.

Gimmie.

1 Like

If I understand correctly, you mean access to mesh curvature or such data for procedural material. If yes, then strata won’t exactly help with that.

Yes you can play with matter to lerp diffuse and specular lobes. You can layer matter on top to have clear coat. So in short anything, just be aware that memory requirement and GPU cost will increase as a function of what your add.
However, on thing to note: we do not yet have a retroreflective BSDF in our list.

Retroreflectors would be really nice even within the non-strata shading models with how common they are (cars, bikes, traffic signs, roads, clothes, etc)

1 Like

Yeah, just something, that we can create precedural edge damage etc without requiring that info being baked into a texture. Or is there any way to get that, or will something like that be implemented?

I even tried baking the curvature into the vertex color of a mesh via a blender plugin, but with Nanite constantly altering the mesh, that method isn´t available or rather, Nanite ignored the vertex colors (and you first have to bake it into the mesh to be able to use it).

The only way to get that effect are screenspace based effects, but they fall apart the moment reflections enter the scene.

Are there plans to make it easier to add functionality to strata via plugins? Adding a shading model currently is a massive pain, requiring engine modification, being able to add a custom BSDF base via plugin for example would open a lot of doors for a lot of developers. e.g if I wanted to make a retroreflective base or toon shader base myself, being able to add it via plugin, making it available on the marketplace would be outstanding. Even making a bit more of the rendering pipeline exposed to materials using strata could alleviate this, as it is right now, it’s still restrictive enough to not replace custom shading models.

1 Like

Strata gets rid of the shading model concept, but for extra BSDFs, see Substrate - Feedback Thread - #16 by SebHillaire.

This is an extra set of features and problem on top of the above concept. It opens the door to lots of possibilities but also comes with a big set of problems for instance when plugin are not available or updated (potentially leading to data incompatibility). Same as the above thread: no promise and no ETA.

Hello - I’m a big fan of the ‘layered material function’ workflow already built-in to UE5.

The Strata docs (on the ‘Parameter blending’ page’) mention:
" Using the layered materials workflow."
…for managing multiple layers at scale.

I assumed this meant I could wrap strata slabs as layered material functions, as well as strata operators in material blend functions, and follow basically the same layered material workflow as before.

It appears this is not the case, which was disappointing - material layer functions require material attributes as an output, and won’t take Strata Materials.

Is this planned for the future? In the meantime, what workflow was the documentation referring to, if not layered material functions?

As part of this testing, I also came across a bug:

Wrapping a strata slab in a material function (a regular one, not a material layer function) works just fine.

Having additional function outputs from this material function also works, PROVIDED the function is used in a Strata operator

Using the Slab on it’s own (as a single layer) works, PROVIDED there aren’t any additional outputs.

However:

Setting up a material like this results in an error:

image

Hi @_Scribbler ,

Thanks for reporting that issue with material function: the fix is now in for 5.2.

I assumed this meant I could wrap strata slabs as layered material functions

You can use the layered material workflow. Just process you parameters as before and simply feed those parameter into a single slab at the end.
There will be work to improve that workflow in order to be more aligned with Strata in the future. For now the workflow remain untouched and you simply plug the final output into a Strata Slab at the end. Existing materials using attributes will automatically be converted to work this way.

wrap strata slabs as layered material functions, as well as strata operators in material blend functions

We test Strata material as attribute before but we removed it because it is dangerous: each slab is an extra closure to evaluate and cost could have gone up quickly. Strata operators can do parameter blending but the current layered material workflow also do that in a more controllable way so we deleted that approach. As mentioned, that workflow will be improved in the future to align with Strata.

One of the reason of using a custom shading model is also to save performance or for the same result a legacy one is more optimized than a strata one, the gap is even bigger with a custom one then, so my question if strata will replace custom shading will it be based only on an artistic point of view ? because for now it consume more than standard shader, can we expect the “slab of matter” concept to be more optimized than the legacy one for a same job in the futur ?

Also unreal crash each time i undo ctrl-z in the strata material editor

Hi @Vallevaar ,

I do not know what you have measured but one thing is sure: there is no free lunch. The concept of slab has more features than before so it won’t be faster. However we expect Strata to adapt to complexity and be the same cost for all legacy shading models.

Optimization is one of the main thing we focus on. Last time we evaluated, we have measured all legacy shading models with strata in games on consoles (older an newer) and we are roughly on par GPU cost wise, sometimes even faster. This is a must to make sure all games can continue to ship. We are still not done with all platforms and uses cases, lots of work remains.

If you use multiple slabs then that is the advanced use case this new framework allows. It is expected to be more expensive according to the number of slab. A single slab can also be more expensive depending on the features you enable on it (MFP lead to SSS, Fuzz, Anisotropy, Haziness, Colored F0/F90).

Custom shading in UE4 I assume is not really existent as a feature. So there is no comparison point. When that is added at some point to Strata, one should be able to implement dead simple shading models.

I could not reproduce any ctrl+z crashes in 5.2 sorry. Could have been fixed by someone (note: there is no Strata material editor, only Strata nodes in the UE5 material editor)

Is that actually planned? It would be great for people who try to use Unreal for non-photorealistic rendering (e.g. stylized/toon) projects. As of now, you end up fighting the engine really quickly, because the entire thing was made with an expectation that PBR on realistic assets is all you ever want to do.

Hi there,

First of all, I am really stoked with this new system! I appreciate the guts you guys have to do such a drastic overhaul of this fundamental part of Unreal.

I’m trying to get a basic glass shader to work on a personal project and i’m using Strata to get acquainted with the new workflow. I hooked up the shader using “Translucent - Colored Transmittance” and using “Surface Forward Shading”

In the preview the shader looks good, but in my scene there is no reflection whatsoever. I do only have dynamic area lights and no sky setup. So I hope this is not the issue. You can see there is lumen scene and reflection data:

2023-02-25_Reflection

Also Whenever I enable refraction with a relatively normal index of 1.5 the refraction goes all over the place:

2023-02-25_Refraction

I manage to fix most of this refraction by using a fresnel and a lerp to blend between a value of 1 and 1.1

2023-02-26 001843

And I get a pretty decent looking result out of this:

2023-02-25_RefractionFix

But I am not a 100% sure if this should be default refraction behavior. I do like the control of refraction by using a fresnel. But I am just wondering if this is going to be the implementation of refraction within Strata.

Anyway, I hope to get some info on what is going on here. Is it because the Strata system is still in early stages of production or maybe just that Forward shading is not supporting reflections from Lumen and area lights?

Cheers
Laurens

It is planned, it is something we would like to do and are thinking about since the beginning. It is however not at the top of our priority list. I cannot give any ETA for that feature because we do not want to hack something in and shoot ourselves in the foot.

As of today, a rendering engineer can still extend the Strata system to add shading models using code changes. It should be easier than the previous shading model approach.

1 Like

Hi Lauren,

Thanks for the nice feedback, indeed this is not a small task :slight_smile: .

Most of my answer are going to be, this is the same as before Strata (unless bug we have not covered):

  • You need a sky light, static reflection captures or Lumen enabled to get environmental reflections on translucent forward.
  • Refraction should behave the same with and without Strata. We have added rough refraction in the mix however. I am still doing a small answer, but please refer to other resource online: The IOR in the raster path is an approximation, you need to be careful and use small values. An IOR of 1 is the default neutral no refraction (air IOR is assumed to be 1, leading to no refraciton). You can select another method on the root node (normal and since 5.2 2d-offset).
1 Like

Thank you for the answer. Now at least I know it is not because of Strata…

  • I have lumen reflections/GI enabled in the scene and project settings
  • The lumen reflection preview looks good

I’m going to look into it a bit more to see what is going on.

edit:

I just noticed that reflections are working fine forthe rest of the materials (just not the glass material)

So somehow it’s not related to the scene setup or project settings. it’s just this glass material not reflecting anything

Thanks
Laurens

Hi all, we have two announcements to make regarding Strata.

First, there is now a Strata example level in the public Content Examples for UE 5.1. This level contains a lot of information that augments the public documentation, including some of the examples shown in the documentation. (Note: UE must be updated to 5.1.1, 5.1.0 will not load the Strata sample level.)

If you already have the Content Examples for 5.1 downloaded from the marketplace, your vault cache copy should automatically update with the latest version. You can check this by seeing if the directory “ContentExamples_5.1\data\Content\ExampleContent\Strata” exists in your Vault Cache directory. (If not, please try deleting the Content Examples asset and re-downloading it.) Then create a new Content Examples project from the “Vault” area of the Library tab. We recommend making a separate copy of the Content Examples for Strata because you will need to enable it in the project settings, and the other levels in the project have not been fully QA’d with Strata enabled.

The second announcement is a heads up that in UE 5.2, Strata is going to be renamed to Substrate. If you are building from source you might have already noticed this. For now you should keep calling it Strata, but if you see any announcements about Substrate, it is simply the new name.

2 Likes

Hi,

i downloaded the new Content Examples to test those Strata-Materials, and i noticed, that the shadows of the translucent materials are either non existent or fully black like from a regular opaque material (as if they are from a masked material).
Is there any chance to get shadows, that are more fitting for transparent objects? Like colored shadows or shadows, that have their intensity regulated by the translucency.

2 Likes