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:
-rw-r--r--intern/cycles/render/graph.cpp2
-rw-r--r--intern/cycles/render/nodes.cpp14
-rw-r--r--intern/cycles/render/nodes.h4
3 files changed, 19 insertions, 1 deletions
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp
index c9f39d449a4..def43876ada 100644
--- a/intern/cycles/render/graph.cpp
+++ b/intern/cycles/render/graph.cpp
@@ -617,7 +617,7 @@ void ShaderGraph::constant_fold()
*/
foreach(ShaderInput *input, output->links) {
if(scheduled.find(input->parent) != scheduled.end()) {
- /* Node might be not yet optimized but scheduled already
+ /* Node might not be optimized yet but scheduled already
* by other dependencies. No need to re-schedule it.
*/
continue;
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index fd8410ce71b..e4f5885df0d 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -3177,6 +3177,13 @@ ValueNode::ValueNode()
add_output("Value", SHADER_SOCKET_FLOAT);
}
+bool ValueNode::constant_fold(ShaderOutput *socket, float3 *optimized_value)
+{
+ *optimized_value = make_float3(value, value, value);
+
+ return true;
+}
+
void ValueNode::compile(SVMCompiler& compiler)
{
ShaderOutput *val_out = output("Value");
@@ -3201,6 +3208,13 @@ ColorNode::ColorNode()
add_output("Color", SHADER_SOCKET_COLOR);
}
+bool ColorNode::constant_fold(ShaderOutput *socket, float3 *optimized_value)
+{
+ *optimized_value = value;
+
+ return true;
+}
+
void ColorNode::compile(SVMCompiler& compiler)
{
ShaderOutput *color_out = output("Color");
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 1fa4b67c6b9..51efbc37f38 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -485,6 +485,8 @@ class ValueNode : public ShaderNode {
public:
SHADER_NODE_CLASS(ValueNode)
+ bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+
float value;
};
@@ -492,6 +494,8 @@ class ColorNode : public ShaderNode {
public:
SHADER_NODE_CLASS(ColorNode)
+ bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+
float3 value;
};