Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Schoen <pascal_schoen@gmx.net>2016-07-26 17:05:19 +0300
committerPascal Schoen <pascal_schoen@gmx.net>2016-07-26 17:05:19 +0300
commite3aff6849e06853c56da7bd610210dcab70e6070 (patch)
tree527b3af8de41658b726ca6762b5b8e39698e8a1e /intern/cycles/render
parentb3ca6d8a2f4f866b323fc2df0a3beff577218c27 (diff)
Added subsurface color parameter to the Disney shader
Diffstat (limited to 'intern/cycles/render')
-rw-r--r--intern/cycles/render/nodes.cpp5
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)