diff options
author | Pascal Schoen <pascal_schoen@gmx.net> | 2016-07-26 17:05:19 +0300 |
---|---|---|
committer | Pascal Schoen <pascal_schoen@gmx.net> | 2016-07-26 17:05:19 +0300 |
commit | e3aff6849e06853c56da7bd610210dcab70e6070 (patch) | |
tree | 527b3af8de41658b726ca6762b5b8e39698e8a1e /intern/cycles/render | |
parent | b3ca6d8a2f4f866b323fc2df0a3beff577218c27 (diff) |
Added subsurface color parameter to the Disney shader
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/nodes.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index a5ea3d48a34..f75fef1c13e 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -2115,6 +2115,7 @@ DisneyBsdfNode::DisneyBsdfNode() closure = CLOSURE_BSDF_DISNEY_ID; add_input("BaseColor", SHADER_SOCKET_COLOR, make_float3(0.646f, 0.415f, 0.017f)); + add_input("SubsurfaceColor", SHADER_SOCKET_COLOR, make_float3(0.646f, 0.415f, 0.017f)); add_input("Metallic", SHADER_SOCKET_FLOAT, 0.0f); add_input("Subsurface", SHADER_SOCKET_FLOAT, 0.0f); add_input("Specular", SHADER_SOCKET_FLOAT, 0.5f); @@ -2142,6 +2143,7 @@ void DisneyBsdfNode::compile(SVMCompiler& compiler, ShaderInput *metallic, Shade ShaderInput *ior, ShaderInput *transparency, ShaderInput *refr_roughness) { ShaderInput *base_color_in = input("BaseColor"); + ShaderInput *subsurface_color_in = input("SubsurfaceColor"); ShaderInput *normal_in = input("Normal"); ShaderInput *clearcoat_normal_in = input("ClearcoatNormal"); ShaderInput *tangent_in = input("Tangent"); @@ -2188,6 +2190,9 @@ void DisneyBsdfNode::compile(SVMCompiler& compiler, ShaderInput *metallic, Shade __float_as_int(base_color_in->value.x), __float_as_int(base_color_in->value.y), __float_as_int(base_color_in->value.z)); compiler.add_node(clearcoat_normal_offset, SVM_STACK_INVALID, SVM_STACK_INVALID, SVM_STACK_INVALID); + + compiler.add_node(((subsurface_color_in->link) ? compiler.stack_assign(subsurface_color_in) : SVM_STACK_INVALID), + __float_as_int(subsurface_color_in->value.x), __float_as_int(subsurface_color_in->value.y), __float_as_int(subsurface_color_in->value.z)); } void DisneyBsdfNode::compile(SVMCompiler& compiler) |