Page MenuHome

Cycles: Improve backscatter color of subsurface scattering in Principled BSDF
ClosedPublic

Authored by Pascal Schön (VanCantus) on May 24 2017, 8:40 AM.

Details

Summary

The albedo of the subsurface scattering in the Principled BSDF was just a blend between the base and subsurface color. The albedo was also used for weighting the BSSRDF closures. This caused a constant backscatter color.

With this patch, the subsurface color is applied as the albedo and the blended color is only used for weighting the closures, which results in physically plausible backscatter colors, depending on the depth of the subsurface scattering rays.

Here is a comparison with base color = (0.0, 1.0, 1.0) and subsurface color = (1.0, 0.0, 0.0):

Previous:

This patch:

Diff Detail

Repository
rB Blender

Event Timeline

The behavior change looks good to me.

Can't we avoid passing base_color and radius to bssrdf_principled in OSL? To me seems like these could just be used in the shader to adjust the closure weight and radius.

This revision is now accepted and ready to land.May 30 2017, 11:29 PM
Closed by commit rBc91d2d30dfc1: Improve backscatter color of subsurface scattering in Principled BSDF (authored by Pascal Schoen <pascal.schoen@adidas-group.com>). · Explain WhyMay 31 2017, 7:31 AM
This revision was automatically updated to reflect the committed changes.