Screen Space Global Illumination for Eevee

Aight, sorry if this is a dumb question…

I’ve downloaded your addon just to see how it works but there were so many complicated node groups I could not wrap my head around it. So I’ve instead tried to just crunch the theory in and do it from scratch.

I’ve just literally done something as simple as add fully rough glossy shader on top of Principled shader and I’ve gotten SSGI-like behavior which seems to work well even with background lighting.

The problem with background lighting in general, in realtime renderers is lack of traced occlusion, but Eevee’s AO at high radius seems to crunch it relatively well.

I am also getting much more diffuse-like illumination unlike your addon. And it looks quite good even without any baked lighting, so I imagine it’d look even better with the actual baked probes for indirect illumination outside camera frustum to actually match.

No weird boosters or multipliers… nothing… :expressionless: Global Illumination is purely additive affair. There’s no such thing as negative light. I am not sure what exactly you are trying to do, but I feel like you are trying to do both additive GI as well as subtractive occlusion, but that job should be left to AO, which Eevee seems to be doing quit well.

I have not spent much more than couple dozens of minutes on this. Maybe I will come up with something more the next chance I have time to play with it :slight_smile:

Of course, unfortunately, this is not really practically usable as the top “GI” Glossy shader overtakes the SSR buffer, so roughness of the Principled BSDF below then doesn’t behave correctly. But to overcome this, it would really have to be implemented on lower level by @hypersomniac

5 Likes

U are awesome, I liked ur addon. U r so kind to do it and also do it for free. Its so cleverr!! I dont care about critisizms or other things. U did a great thing. I loved the tweaking sliders and its so easy to use. Tweaking is very important I think because its how Evee works and u did it by shaders so its normal to have those things. Also, some people might want artistic controls, so u gave choices to people and its a great thing. I really appreciate. I think the addon is great like this. Please dont be affected by harsh critisizms. I really like ur approach and If u improve, improve it in ur own way (not like other’s way). I think u r awesome!!

Thank u so much :))

Best Regards :))

6 Likes

Ignoring the messed up world lighting for this:

It generaly boils down to this glossy != diffuse:

GlossyVsDiffuse
GlossyNoSSR+BrightnessVsDiffuse
DiffuseVsAddon

The subtractive part is world lighting that doesn’t work with what I’m doing to isolate SSR (adding shaders with negative inputs), which I have not properly taken into account.

I realize this has gotten a lot of traffic that was not from the original thread where the idea that this was built around was visible and discussed, so that’s a failure on my part if someone expected something different. And again - just give me your email if you want a refund for any reason.

11 Likes

You don’t owe them anything, mate. Just keep on improving it as you see fit.

12 Likes

I grabbed this just the other day. Other than it making my computer cry when I activate it, it works beautifully.

1 Like

I did not pay anything for it, because I did not plan to use it (for anything more than just comparisons to post in this thread) :slight_smile: I just wanted to help improve it, but I am still worried it’s not possible without lower level approach.

Also, I (dis)agree with that glossy is not diffuse. In general, when it comes to rendering, glossy vs diffuse is not a boolean but a spectrum. The rougher the material gets, the wider the cone in which the rays spread on the bounce is. (Technically diffuse models such as lambert are also intended to simulate slight subsurface properties of dielectric materials, your image shows that well). So all in all, Glossy shader with maximum roughness should be as close to diffuse interaction as you can get in the context of this hacky approach. It should just simulate rays bouncing off the surface in such a wide angle it makes up complete hemisphere.

I also noticed my approach does not create color bleeding from materials, but that’s probably just setup issue I could address since I’ve really not spent much time on this.

Sphere on a plane kind of test unfortunately isn’t sufficient to determine this. Here are some examples on slightly more complex scene. A pure diffuse gray material is used, which is good because it lets us evaluate diffuse indirect illumination (What SSGI should be simulating) without interference of any specular effects.

Here’s a Cycles reference:


Here’s my quick and dirty “add fully rough glossy over principled shader” trick:

And here is your addon, with almost stock settings except boosting SSGI a bit to match the references closer and setting roughness to full:

image

Even if we both agree that diffuse != glossy then your addon results to effect which still looks far more like specular indirect illumination than a diffuse one. It’s especially visible on the grazing angle of the wall on the very right, where the reflection of the lit area outside of the window looks quite shiny. My result on the other hand looks consistently quite close to Cycles reference, except the obvious light leaks due to absence of the data outside camera frustum.

But again, just to clarify. I am not saying I have anything against the addon being sold, or that you should refund people, or anything like that at all. I just want this effort of SSGI for Eevee to evolve, so that it doesn’t stagnate in sub optimal state.

3 Likes

And after all that, the SSGI for Eevee shot still looks the best if I was just going for atmosphere instead of a perfect, scientific match to Cycles or real life.

Please, go start your own thread on your own SSGI for Eevee and stop trying to highjack 0451’s.

8 Likes

Well, given the fact that he has used the sample scene I’ve personally made originally for Corona Renderer to promote his addon in the video, without even mentioning the source despite that being the condition for using the scene: https://forum.corona-renderer.com/index.php?topic=4354.0 I think I should at least be able to provide some constructive criticism, which I definitely consider posting comparisons to be.

To be clear, I don’t require him to take that down or to add credit to that video. I am hereby giving him permission to use the scene any way he wants without need to put the credits of the original author next to it. (As long as he doesn’t use the scene for commercial purposes, like selling the scene itself, of course.)

I am doing that because I made the scene exactly for that reason, to be a great test case for various rendering and lighting features, mainly global illumination. He has used this scene throughout the development of his addon and I am really thankful that he did, because that’s exactly kind of cases I wanted this scene to be used for - the comparison of rendering technologies.

He seems to be as passionate about rendering features as I am, so please stop trying to be a white knight, and let him decide himself if he wants me in this thread or not. All I want is to just talk about the addon to possibly help it evolve further, and remove its weaknesses.

4 Likes

I’m sorry, I didn’t know your asset was used in that way without your permission.

Still, what you’re doing is not “constructive criticism.” Coming into someone else’s addon release thread and saying, “Well I just didn’t understand how this works, so it must be wrong and by the way, I implemented my own thing way more simply and it’s more accurate oh and did I mention it just took a couple minutes?” is quite rude.

4 Likes

That’s not what I said, anywhere above in this thread. That’s just how you interpreted it. I just made it for comparison, not to say it’s better. I ultimately just want this addon to improve, that’s it. And if you are against it then you are just shooting yourself in the foot.

EDIT: Let’s put what I and you wrote side by side to see how you (mis)interpreted it.

Do you see how you’ve put words in my mouth? I never said it’s more accurate, nor did I say it’s wrong just because I did not understand it.

3 Likes

I’m against the way you’re going about it.

I wasn’t posting an interpretation of the single post you quoted but including your previous posts as well. You posted that you think it’s being done wrong in the posts before your post you quoted and you clearly state it only took a few minutes in the very post you quoted. Maybe you should re-read what you wrote.

edit: Not going to respond to you anymore.

3 Likes

I wasn’t addressing only you with that statment regarding refunds.

Cycles Performance - I should have done more research where the scene originally came from, but unless I’m missing something, your own share of the file does not have the conditions included, nor a link to the original post, which would help with proper usage of the files. Doesn’t absolve from responsibilty on my end though. Regardless it has been really valueable for testing things (not only for me) out so thank you for making the original file available to the community and permission to use it.

I have no issues with you being in this thread. I generally agree with most of your takes I’ve stumbled upon. I would just avoid this thread devolving into something that online communication usually does.

On diffuse vs glossy. Technically yes - simulating the same thing in general. In practice in Eevee - they behave far too different to be used interchangably. When I was messing around with the initial tests I spent some time on seeing if it was possible to build a ubershader with just replacing the diffuse component with glossy (you can control what glossy BSDF is used for SSR with the order of shader mixing and exclude shaders with convert to rgb, altough that’s a whole different can of worms) and it looks different enough to not be usable as a stand in for diffuse like that. Even with accounting and fixing the difference in brightness. Might look okay in a simple test scene with mostly white materials, but something like skin will not look anywhere close to what it should. I’m still stuck with a laptop for few days that struggles with the default Blender scene in Eevee so no fancy scenes for comparision at the moment.

I don’t have a way to remove world lighting from only two nodes inside the material. So I don’t believe that part is fixable only as a addon. Then there’s the whole low roughness dielectrics thing that also isn’t compatible with hijacking the SSR for something else.

5 Likes

Yes, so looks like we agree on pretty much everything.

Yeah, that’s why I hope equivalent of what you did would be implemented by Cycles developer on a C level so it could work properly. In the meanwhile, when I have some more time, I will try to actually come up with something that would get closer to your result but still mitigate the issue with the roughness. If I do, I will certainly post it here :slight_smile:

4 Likes

very nice idea
good luck

Man!!

this is awesome!

Hi, I’m really enjoy your addon!! It is awesome !! Creative Shrimp brought me here. I have tried on some different scenes, most of them works fine. But i have some issue with this scene, some of the frames looks alright but some doesn’t. Anything i could adjust to avoid this?

https://www.youtube.com/watch?v=hkXQgHwjUgk

I sent you a PM.

@rawalanche you can do constructive criticism without being rude. Reading your posts comes across as direct attacks on the addon developer and frankly, I hope that this is just a case of a language barrier instead of you thinking it’s okay to speak to people that way.

I bought the addon because I felt like you deserved it for the good work. The best thing would be for SSGI to be implemented as a post-processing filter (and I’m sure it will be soon enough) but until then I will happily use this addon.

2 Likes

Just wanna throw my 2 cents in here. :slight_smile:

This is true for some things, but most projects I’ve worked on I’ve never wanted truly realistic lighting. Controls like boost GI (which Unreal has, it’s in the world properties) are helpful for cheating lighting to get the shot you’re looking for. On every project I’ve worked on, ‘faking’ the lighting is part of the game, if it means getting a more compelling shot. (having screens ‘project’ more light than they should, for example)

Having the default be real/physically accurate is probably right. But the artistic control is appreciated. :slight_smile:

5 Likes

GI multiplier is a very last thing that should be touched. There is a whole lot of more appropriate tools to for example tweak contrast between ambient and key lighting before you have resort to something like breaking GI light conservation. There are different calibers of fakes, and breaking light transport falls into “pretty much never do” category.

Even author of the addon admits they are there more for a reason to mitigate the shortcomings the addon and the approach taken has, rather than something that was originally intended.

Breaking of light transport is not only not required to get properly compelling shot, quite the contrary actually. You can see that most of the push for the physically based rendering and the technology to achieve it has come from Pixar, the makers of one of the most high end stylized movie imagery out there. The fact that every piece of new technology that comes from them makes some breakthrough, usually in the direction of making the rendering more physically based speaks for itself.