Substrate - Feedback Thread

Seems that MFP behaves wildly differently when Lumen is in Software Raytracing mode:

Tested in 5.3. When MFP is set to anything non-zero, it seems to exhibit strangely strong scattering behavior, even at very low values.

Tested a regular SSS material in the legacy system and it didn’t have this issue. (It maintained visual consistency between HW/SW raytracing)

Test material used:
image

Thanks for reporting these issues @Arkiras ! I have added that on our list of bugs to investigate and fix for 5.4.

3 Likes

I believe the local light shadow issue should be fixed in the mainline (5.4) at CL 27729272.

2 Likes

I can’t repro your issue our mainline. So I imagine that issue got fix after we branched out 5.3. Thank you for reporting that issue as it allowed us to find & fix another issue! :slight_smile:

2 Likes

The effect looks shockingly good considering the relative simplicity of the material. It looks visually plausible, and I’m continuously blown away by what substrate seems to enable.

1 Like

Please let me know if this is already answered somewhere else, but will Substrate still be considered experimental upon 5.4’s release, or are you looking to move it into beta?

1 Like

All I can say is that Substrate will either be Experimental or Beta in 5.4 depending on how things go, amount of support, etc. :slight_smile:

3 Likes

I have a rather limited knowledge of raster translucency solvers, but I’m trying to understand the featureset that opaque rough refraction (ORR) facilitates in substrate:

If I enabled order-independent transparency in the project settings, would it be possible to have multiple opaque rough refracting layers all correctly sort and refract eachother? Or is the limitation not one of sorting, but of the multiple RTs needed to compute transparency?

I am amazed at what opaque rough refraction allows for in real-time as a visual effect, it looks truly stunning, but I admit I really don’t understand how it works and what its’ limitations are.

Also, in regards to using ORR with lumen, just as lumen can compute rough translucent reflections, does lumen also solve rough refraction in that case, or is it just pulling information from screen-space?

Thank you so much for creating such an amazing piece of technology!

I would like to know too if this is something that can be eventually solved. For now I have to actively avoid translucent objects unless I want to use pathtracing or they are something simple.

Hey guys.
How to use displacement on substrate?
Not work for me :cry:

Good questions!

Opaque rough refraction is different from translucent rough refraction.

Translucent rough refraction

That is enabled using r.Refraction.Blur 1.

If you enable OIT that will not run multiple layer of rough refraction. That is still the same as before: 1 refraction layer. 1 refraction roughness according to the single distortion accumulation pass we have.

Opaque rough refraction

When rendering a substrate material, a top slab layer can make the lighting of the bottom slabs look rougher if roughness of the top layer is increase, simulating the scattering of light rays incoming from the top surface onto the bottom.

Opaque rough refraction is the refraction simulate the scattering of view ray. That means the a bottom surface will look more of less blurred according to the roughness and thickness of the top layer.

==>This is just the beginning and we have plan to improve/extend such features. But that won’t be in Substrate for a while. We are mainly working toward getting out of experimental as soon as possible.

This is the same as without Substrate:

  • Vertex offset is specified on the root node.
  • Fine surface details are achieved using Nanite.

Wonderful! I see, apologies for my lack of distinction between Translucent and opaque rough refraction.

If I am to understand correctly, Opaque Rough refraction means the top layer can affect lower layers of the material, but the coverage of the object itself is nonetheless completely opaque? Whereas translucent supports layers beneath it?

If so, can one have an ORR material below a TRR material and have it render correctly?

By the way, let me know if this is a bug or a current limitation, but it looks like there is quite a large difference between substrate HWRT for translucent rough refraction and the PT:

Raster (with HWRT lumen)


PT (the slight blurring is from the denoiser, undenoised is pin sharp).

Material system (this was purely to test out rough refraction, it’s just a modifed default glass and probably terrible in many ways):


image

If I am to understand correctly, Opaque Rough refraction means the top layer can affect lower layers of the material, but the coverage of the object itself is nonetheless completely opaque? Whereas translucent supports layers beneath it?

Yes that is it :slight_smile:

The difference with the path tracer is due to that fact that it is not completely hooked up with substrate just yet.

1 Like


Getting this fun result when enabling lumen (hit lighting) reflections with lightmapped GI in 5.3 :star_struck:

Looks good to me :+1:
Joke aside, I have added it as a bug to investigate. Thanks for reporting.

1 Like

That makes more than enough sense, thank you.

Correct me if I’m wrong, but the idea of rough refraction is that the effect isn’t produced by a scattering media, but rather by the interface’s rough surface and the light rays as they navigate through? If so, shouldn’t a roughness map be able to drive diffuse refraction as it does diffuse reflection?

I know I’ve been asking a lot of questions about this new feature, apologies if it’s a bother. I love testing out and building content with the newest features, and rough refraction seems like a visual effect that just wasn’t possible before with older engine versions.

1 Like

In Path Tracer the rendering is absolutely fine, but in lit mode it gets buggy, I tried to change the GI and Reflection methods from Lumen to anything else, even none, but no progress occured. Is there anybody who does have any idea? Thanks in advance.

If I convert an existing project to use Substrate, the auto generated “legacy conversion” node creates null errors. These appear when packaging the project.

The “default shading” nodes do not have these errors. Please consider using these when auto generating material changes.

Yes that is what it does actually: use the roughness of Slabs to drive translucent and opaque rough refraction (drives the variance of a gaussian blur as of today). We would like to account for the scattering due to the medium but that is not the case yet since such mapping does not exist yet and we would have to come up with a solution to that.