Page MenuHome

Eevee - Objects in front of SSS (Subsurface Scattering) shaded objects cause bluish dispersion
Closed, InvalidPublic

Description

System Information
Windows 10 64-bit

Blender Version
Broken: 2.80 June 16, 01:02:51 - 87de71a8aaa

Short description of error
In Eevee, any objects occluding SSS shaded objects has bluish dispersion appearing at the point of occlusion.

Here's an example:


At first I thought it was a hair problem, but it's any object:


Exact steps for others to reproduce the error
Should be easily reproducible by setting the values for SSS radius to be 1, 0, 0, and placing an object in front.

Also attaching the example file:

Details

Type
Bug

Event Timeline

KiJeon (0o00o0oo) edited projects, added Eevee; removed Add-ons.Jun 16 2019, 12:38 PM

This is a limitation of eevee's SSS. The occluders have infinite thickness.

@Clément Foucault (fclem) Is there a good way around this problem? Or are there plans to remedy it?

As it stands, in situations like this, the results are sadly unusable.

We could add a thickness option for the SSS, similar to the one the SSR have.

This is a terrible problem, it'll make SSS unviable for characters.

@Clément Foucault (fclem) I'm not into shaders but isn't there a way to mask out the non-sss material pixels influence on the blurring kernel?

Edit:
It seems actually like they are already being masked but if I get it right the more non-sss pixels the blur kernel has to ignore, the darker is the resulting pixel, maybe if you normalize the resulting color relative to the amount of SSS pixels in the kernel?

@Jean Da Costa (jeacom256) We cannot do this because we cannot distinguish between pixels that are unlit from pixels comming from another object at this point in the pipeline. The lighting is masked before doing the SSS passes.

But the idea is good and that's what we will eventually do if we can in the future.

@Clément Foucault (fclem) just noticed that if we enable SSS on the occluder's material and set the SSS radius to 0, the problem goes away, presumably because the lighting mask gets disabled on the occluders?

Because the lighting does "bleed" from the occluder to the SSS object. This becomes a problem when the occluder recieves more light than the occludee.

Because the lighting does "bleed" from the occluder to the SSS object. This becomes a problem when the occluder recieves more light than the occludee.

oh, I see.
So the color is being applied before the blur, not after.
If I enable separate albedo, the light bleeding disappears tho.
At least it looks viable to disable the light mask if sepparate albedo is enabled, this would fix the problem at the cost of the texture blur right?

I personally think the result looks better with separate albedo enabled anyway.


I am convinced that if separate albedo is on, the best is to not mask the lighting.