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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-10 20:57:17 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-10 20:57:17 +0400
commiteaa6479ae3482b643e6e5d553f09b1a1100b48ee (patch)
treea7fcb0702a4b463df1777f395575b4b5d0d9386d /intern/cycles/render/nodes.cpp
parent2f9f3dd5903eeec514640de05a45cfd21d168397 (diff)
Cycles: bump node changes to add a Distance input that controls the overall displacement
distance, and an Invert option to invert the bump effect.
Diffstat (limited to 'intern/cycles/render/nodes.cpp')
-rw-r--r--intern/cycles/render/nodes.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index 406b5876a4b..d7ac379739d 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -3047,6 +3047,8 @@ void VectorMathNode::compile(OSLCompiler& compiler)
BumpNode::BumpNode()
: ShaderNode("bump")
{
+ invert = false;
+
/* this input is used by the user, but after graph transform it is no longer
* used and moved to sampler center/x/y instead */
add_input("Height", SHADER_SOCKET_FLOAT);
@@ -3055,7 +3057,8 @@ BumpNode::BumpNode()
add_input("SampleX", SHADER_SOCKET_FLOAT);
add_input("SampleY", SHADER_SOCKET_FLOAT);
add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL);
- add_input("Strength", SHADER_SOCKET_FLOAT, 0.1f);
+ add_input("Strength", SHADER_SOCKET_FLOAT, 1.0f);
+ add_input("Distance", SHADER_SOCKET_FLOAT, 0.1f);
add_output("Normal", SHADER_SOCKET_NORMAL);
}
@@ -3066,13 +3069,15 @@ void BumpNode::compile(SVMCompiler& compiler)
ShaderInput *dx_in = input("SampleX");
ShaderInput *dy_in = input("SampleY");
ShaderInput *normal_in = input("Normal");
- ShaderInput *intensity_in = input("Strength");
+ ShaderInput *strength_in = input("Strength");
+ ShaderInput *distance_in = input("Distance");
ShaderOutput *normal_out = output("Normal");
compiler.stack_assign(center_in);
compiler.stack_assign(dx_in);
compiler.stack_assign(dy_in);
- compiler.stack_assign(intensity_in);
+ compiler.stack_assign(strength_in);
+ compiler.stack_assign(distance_in);
compiler.stack_assign(normal_out);
if(normal_in->link)
@@ -3080,14 +3085,15 @@ void BumpNode::compile(SVMCompiler& compiler)
/* pack all parameters in the node */
compiler.add_node(NODE_SET_BUMP,
- normal_in->stack_offset,
+ compiler.encode_uchar4(normal_in->stack_offset, distance_in->stack_offset, invert),
compiler.encode_uchar4(center_in->stack_offset, dx_in->stack_offset,
- dy_in->stack_offset, intensity_in->stack_offset),
+ dy_in->stack_offset, strength_in->stack_offset),
normal_out->stack_offset);
}
void BumpNode::compile(OSLCompiler& compiler)
{
+ compiler.parameter("invert", invert);
compiler.add(this, "node_bump");
}