Screen Space Global Illumination for Eevee

Actually, if you need to stop it from appearing in their notification you need to tag the patch as “changes planned” I believe. Right now it is tagged as “need review, but no reviewer assigned” which mean it will appear for everyone. So updating the diff and marking it as “changes planned” will not spam the developers…

3 Likes

Removed by popular demand

1 Like

@myway880
Any documentation to point to how it’s supposed to be done? I looked at wiki and I didn’t find any relevant info neither with updating.

@philo_vivero
I’ll try to get Mac VM running after I’m done with Linux, since I can’t replicate on Win.

I haven’t done this myself. I just happen to read that in a dev comment about another patch.
However, if you scroll to the end of the page where you can leave a comment there should be an “add action” menu above it directly
if you press it you should get something like this

Since you are the author and the owner of the patch I suspect you will get extra items in this menu…

1 Like

That was it. Thank you very much!

CC list on email that got generated is still way too long, hope it’s just for this change.

1 Like

Glad to see this being worked on as a patch for master!!!

2 Likes

It’s only for people who subscribed for notification and not for developers unless they have subscribed manually, I think

1 Like

Removed by popular demand

2 Likes

Updated the Windows and Linux builds to 1.12.

Fixed glossy input being skipped when no SSR present - globally or per node. Fixed some alpha issues. Fixed SSGI settings being reset on every file open.

It’s based on a master that has plenty of rendering artifacts unrelated to this, but I don’t think there’s an enough up to date hash without them.

Linux version seems to work, but it’s relatively untested. There’s some rendering issues even with build bot builds that I couldn’t troubleshoot. So hopefully it’s just on my end with VM.

3 Likes

I’ll try it out.

1 Like

Yeees! Now it works on Ubuntu 18.04! And this is hot! We much closer to cyberpunk now))
Thank you for your work, sir. Keep up your mission, please.

rendered in 128 samples (still noisy)

4 Likes

Alright. My results…

I tried it on the current scene I’m working on, and it totally broke my lighting. Some objects would light up, others wouldn’t. It’s hard to say if it’s the fault of the SSGI implementation itself, since I have tons of shaders in the mix that could gum up the works.

So I tried it out on an older scene. The one I posted way up above last year. It doesn’t rely on any fancy shaders, just basic principled BSDF with all the appropriate maps in play. I fired up, and sure enough, light was bouncing. I deleted three point lights I was using to fake a bounce, and just let the emission shaders do all the work. The lights did bounce.

I did have to overdrive the emission to get a noticeable effect though, but that may be due to my scene possibly being too large. Here’s what it looked like.

edit: Just rendered that same scene in Cycles, and the results were really surprisingly shockingly close to what I got from Eevee with SSGI. I’d say barring some edges cases, it looks like it’s working fine.

2 Likes

The input is mostly following how default SSR works with the exception that it’s not just using input from one glossy node (node that’s in the first socket in all mix nodes). Glossy SSR just falls back to cubemaps in case it’s not the node that’s selected for SSR (can’t effectively mix roughness). Normal data is still shared with the default glossy input. I’ve only added support to diffuse, principled and translucent nodes (eevee exclusive specular shader was broken at the time).

I haven’t tested cases more complicated than few mix or add nodes, so I’d guess with more NPR stuff or complex node setup there are more cases where it fails. If you have some material setups or some isolated examples to share I’d love to test them.

1 Like

For now I love the performance :heart_eyes:

Is it possible in the future to add Optix to the Linux builds?

3 Likes

I’m using Paul Caggegi’s comics shader for the big project, and barring the grass, my materials are a simple diffuse or color ramp run through three nodes provided in that pack. Nothing too complicated. Strangely enough, one of the few things that remains lit is the grass texture, which is, by and far, the most complicated shader/particle effect in the scene.

To further experiment, I tried it out on my new parallax mapped objects, which do have a fairly hefty node tree attached to them. The SSGI worked just fine for it. I could see it softening the shadow, and any change I made to the floor material would be subtly reflected into the shadowed portion of my cylinders.

If the effect failed in my first test due to the shaders, it should have failed here, since this is using those same shaders and then some.

edit: just figured it out. The only difference from my stylized scene, and the rest is that most of my materials in the aforementioned don’t have a principled bsdf node attached to them. I slapped a couple on, and they immediate lit up.

1 Like

@ViAdvena
I’ll look into adding Optix after I’ve set up Mac builds. Don’t want to speculate on time scale since getting issues sorted out with Linux already took way longer than I expected.

@Renzatic
Without principled what would be the used BSDF node. Diffuse?

1 Like

It goes directly from the last node in the set to the output. Like this…

Plugging the node stack into the base color input on the principled node works well enough, though it messes up the toon shading somewhat.

I’d send you a copy of my scene, but the nodes that are causing the problems in question were bought, and the thing’s well over 200 meg by itself, not counting the textures.

1 Like

I felt that the overall SSGI effect in the native build (tested on Linux) feels more natural.
But also noticed some non desired issues like topology shading artifacts and some line separation against projected shadows. I haven’t dig deeper into that but just want to share it might be useful to know.

2 Likes

@0451 I just want to say that I hope the future SSGI denoising is an option and not baked in.

Eevee has always been too clean for animations requiring one to have to add a small amount of film grain in post.

Having some grainy noise natively now is a god send. :smiley:

1 Like

@Renzatic
I could add SSR data to emission shader so there light bounce calculated on that, but I don’t think that would make much sense outside of NPR context. I’m not really sure what the correct solution would be.

@juliocargnin
I’m generally hoping a bilateral weighted blur would clean some of that up, but it seems the most likely way I can get it working is with per sample (as opposed to once when the set max sample count is reached), which is not ideal since it would have a potentially a pretty big performance hit. I’m not sure the cheapest 2x2 filter is enough to clean the edge artifacts up. I won’t have the chance to look into it any time soon though. Also SSR is been getting updated quite a lot recently so I’ll have to see how it works closer to a stable 2.93 release, and try to keep up with that.

@anon55679826
That’s a unexpected benefit. I’m planning to have either toggle or filter strength slider, but that’s some time off in the future anyway.

1 Like