Cycles: Implement approximate reflectance profiles
Using this paper: http://graphics.pixar.com/library/ApproxBSSRDF/paper.pdf This model gives less blurry results than the Cubic and Gaussian we had implemented: - Cubic: https://developer.blender.org/F279670 - Burley: https://developer.blender.org/F279671 The model is called "Christensen-Burley" in the interface, which actually should be read as "Physically based" or "Realistic". Reviewers: juicyfruit, dingto, lukasstockner97, brecht Reviewed By: brecht, dingto Subscribers: robocyte Differential Revision: https://developer.blender.org/D1759
This commit is contained in:
@@ -28,7 +28,9 @@ shader node_subsurface_scattering(
|
||||
{
|
||||
if (Falloff == "Gaussian")
|
||||
BSSRDF = Color * bssrdf_gaussian(N, Scale * Radius, TextureBlur);
|
||||
else
|
||||
else if (Falloff == "Cubic")
|
||||
BSSRDF = Color * bssrdf_cubic(N, Scale * Radius, TextureBlur, Sharpness);
|
||||
else
|
||||
BSSRDF = Color * bssrdf_burley(N, Scale * Radius, TextureBlur, Color);
|
||||
}
|
||||
|
||||
|
@@ -510,6 +510,7 @@ closure color ambient_occlusion() BUILTIN;
|
||||
// BSSRDF
|
||||
closure color bssrdf_cubic(normal N, vector radius, float texture_blur, float sharpness) BUILTIN;
|
||||
closure color bssrdf_gaussian(normal N, vector radius, float texture_blur) BUILTIN;
|
||||
closure color bssrdf_burley(normal N, vector radius, float texture_blur, color albedo) BUILTIN;
|
||||
|
||||
// Hair
|
||||
closure color hair_reflection(normal N, float roughnessu, float roughnessv, vector T, float offset) BUILTIN;
|
||||
|
Reference in New Issue
Block a user