Blender seems to have problems when rendering SSS in areas where the geometry is very thin or pointy. This happens, when the Scale value gets a bit larger.
Here’s an image to illustrate the issue … the tip should be almost transparent instead it’s darker than the thicker parts.
Renderman also had this issue but recently fixed it by using a new path traced algorithm. Is there a workaround in Blender for this problem. I tried to mix in some other shaders via Ray Length but had no luck to get to a good result.
The way to resolve it now is to mix in a second SSS shader with a much smaller radius. RayLength won’t work because rays aren’t actually going through the object (try to illuminate an object on the other side of an SSS object with that object completely blocking the light, you can’t).
For objects that are somewhat symmetrical you can use the local position coordinates to drive the blending. Subtract object location from surface position to get local position, modify the coords with math nodes or mixrgb and then use the result as a mixing factor.
For spikes similar to example image you could calculate distance from object center (position the origin correctly first) and use it as a mixing input basis.
Thanks for the advice, but that’s more of a compromise. The thin part’s might look a little better but the thicker parts that I don’t want to affect will be influenced as well.
Cheers. But as mentioned before, I’m rather searching for a solution that targets the thin parts on a geometry base rather that a location base or that having to create textures manually.
There are a few interesting solutions using “Ray Depth”. But they only seem to work with transparency and not with SSS. Something similar might be cool. Maybe somebody has a solution that is OSL based. That would be awesome as well.
Cycles SSS might not be 100% accurate but it’s fairly close
Also, in reality, transparent matter is darker (ie. wet surface)
Guess, for your vision, you need to create a custom shader… or lit the object from behind.
Cycles SSS node (like most SSS implementations) is using diffusion approximation, which treats the underlying surface as a semi-infinite solid slab. This approximation falls apart when the surface is very thin or has a strong curvature - or as in this case, both.
For rendering these areas correctly, one needs to switch to a brute-force path traced volumetric approach. To a certain degree, this can be done with the volume scatter/absorptions nodes in Cycles. A sampling approach like this one could help making it more efficient.
You’ve basically run into a mathematical artifact of the algorithm itself – twice – so you’re going to have to “compromise something” in order to work around it. To start with, can you somehow avoid the shot? And, if you can’t, is the audience actually going to notice that the tip is dark?