[Bf-blender-cvs] [d5fcfa851ae] cycles_procedural_api: apply render_graph_finalize_test changes from cycles_api_review
Kévin Dietrich
noreply at git.blender.org
Mon Oct 26 23:27:05 CET 2020
Commit: d5fcfa851ae9d4259d424dda472c66b6caecf57d
Author: Kévin Dietrich
Date: Tue Oct 13 17:47:16 2020 +0200
Branches: cycles_procedural_api
https://developer.blender.org/rBd5fcfa851ae9d4259d424dda472c66b6caecf57d
apply render_graph_finalize_test changes from cycles_api_review
===================================================================
M intern/cycles/test/render_graph_finalize_test.cpp
===================================================================
diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp
index 185dd7b251f..3eaec982d09 100644
--- a/intern/cycles/test/render_graph_finalize_test.cpp
+++ b/intern/cycles/test/render_graph_finalize_test.cpp
@@ -40,9 +40,9 @@ namespace {
template<typename T> class ShaderNodeBuilder {
public:
- ShaderNodeBuilder(const string &name) : name_(name)
+ ShaderNodeBuilder(ShaderGraph &graph, const string &name) : name_(name)
{
- node_ = new T();
+ node_ = graph.create_node<T>();
node_->name = name;
}
@@ -60,7 +60,15 @@ template<typename T> class ShaderNodeBuilder {
{
ShaderInput *input_socket = node_->input(input_name.c_str());
EXPECT_NE((void *)NULL, input_socket);
- node_->set(input_socket->socket_type, value);
+ input_socket->set(value);
+ return *this;
+ }
+
+ template<typename V> ShaderNodeBuilder &set_param(const string &input_name, V value)
+ {
+ const SocketType *input_socket = node_->type->find_input(ustring(input_name.c_str()));
+ EXPECT_NE((void *)NULL, input_socket);
+ node_->set(*input_socket, value);
return *this;
}
@@ -116,7 +124,7 @@ class ShaderGraphBuilder {
ShaderGraphBuilder &add_attribute(const string &name)
{
return (*this).add_node(
- ShaderNodeBuilder<AttributeNode>(name).set("Attribute", ustring(name)));
+ ShaderNodeBuilder<AttributeNode>(*graph_, name).set_param("attribute", ustring(name)));
}
ShaderGraphBuilder &output_closure(const string &from)
@@ -127,7 +135,7 @@ class ShaderGraphBuilder {
ShaderGraphBuilder &output_color(const string &from)
{
return (*this)
- .add_node(ShaderNodeBuilder<EmissionNode>("EmissionNode"))
+ .add_node(ShaderNodeBuilder<EmissionNode>(*graph_, "EmissionNode"))
.add_connection(from, "EmissionNode::Color")
.output_closure("EmissionNode::Emission");
}
@@ -135,11 +143,16 @@ class ShaderGraphBuilder {
ShaderGraphBuilder &output_value(const string &from)
{
return (*this)
- .add_node(ShaderNodeBuilder<EmissionNode>("EmissionNode"))
+ .add_node(ShaderNodeBuilder<EmissionNode>(*graph_, "EmissionNode"))
.add_connection(from, "EmissionNode::Strength")
.output_closure("EmissionNode::Emission");
}
+ ShaderGraph &graph()
+ {
+ return *graph_;
+ }
+
protected:
ShaderGraph *graph_;
map<string, ShaderNode *> node_map_;
@@ -197,13 +210,15 @@ TEST_F(RenderGraph, deduplicate_deep)
CORRECT_INFO_MESSAGE(log, "Folding Value2::Value to constant (0.8).");
CORRECT_INFO_MESSAGE(log, "Deduplicated 2 nodes.");
- builder.add_node(ShaderNodeBuilder<GeometryNode>("Geometry1"))
- .add_node(ShaderNodeBuilder<GeometryNode>("Geometry2"))
- .add_node(ShaderNodeBuilder<ValueNode>("Value1").set("Value", 0.8f))
- .add_node(ShaderNodeBuilder<ValueNode>("Value2").set("Value", 0.8f))
- .add_node(ShaderNodeBuilder<NoiseTextureNode>("Noise1"))
- .add_node(ShaderNodeBuilder<NoiseTextureNode>("Noise2"))
- .add_node(ShaderNodeBuilder<MixNode>("Mix").set("Type", NODE_MIX_BLEND).set("Fac", 0.5f))
+ builder.add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry1"))
+ .add_node(ShaderNodeBuilder<GeometryNode>(graph, "Geometry2"))
+ .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value1").set_param("value", 0.8f))
+ .add_node(ShaderNodeBuilder<ValueNode>(graph, "Value2").set_param("value", 0.8f))
+ .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise1"))
+ .add_node(ShaderNodeBuilder<NoiseTextureNode>(graph, "Noise2"))
+ .add_node(ShaderNodeBuilder<MixNode>(graph, "Mix")
+ .set_param("mix_type", NODE_MIX_BLEND)
+ .set("Fac", 0.5f))
.add_connection("Geometry1::Parametric", "Noise1::Vector")
.add_connection("Value1::Value", "Noise1::Scale")
.add_connection("Noise1::Color", "Mix::Color1")
@@ -228,7 +243,7 @@ TEST_F(RenderGraph, constant_fold_rgb_to_bw)
"Folding convert_float_to_color::value_color to constant (0.8, 0.8, 0.8).");
builder
- .add_node(ShaderNodeBuilder<RGBToBWNode>("RGBToBWNodeNode")
+ .add_node(ShaderNodeBuilder<RGBToBWNode>(graph, "RGBToBWNodeNode")
.set("Color", make_float3(0.8f, 0.8f, 0.8f)))
.output_color("RGBToBWNodeNode::Val");
@@ -245,8 +260,8 @@ TEST_F(RenderGraph, constant_fold_emission1)
CORRECT_INFO_MESSAGE(log, "Discarding closure Emission.");
builder
- .add_node(
- ShaderNodeBuilder<EmissionNode>("Emission").set("Color", make_float3(0.0f, 0.0f, 0.0f)))
+ .add_node(ShaderNodeBuilder<EmissionNode>(graph, "Emission")
+ .set("Color", make_float3(0.0f, 0.0f, 0.0f)))
.output_closure("Emission::Emission");
graph.finalize(scene);
@@ -257,7 +272,7 @@ TEST_F(RenderGraph, constant_fold_emission2)
EXPECT_ANY_MESSAGE(log);
CORRECT_INFO_MESSAGE(log, "Discarding closure Emission.");
- builder.add_node(ShaderNodeBuilder<EmissionNode>("Emission").set("Strength", 0.0f))
+ builder.add_node(ShaderNodeBuilder<EmissionNode>(graph, "Emission").set("Strength", 0.0f))
.output_closure("Emission::Emission");
graph.finalize(scene);
@@ -273,7 +288,7 @@ TEST_F(RenderGraph, constant_fold_background1)
CORRECT_INFO_MESSAGE(log, "Discarding closure Background.");
builder
- .add_node(ShaderNodeBuilder<BackgroundNode>("Background")
+ .add_node(ShaderNodeBuilder<BackgroundNode>(graph, "Background")
.set("Color", make_float3(0.0f, 0.0f, 0.0f)))
.output_closure("Background::Background");
@@ -285,7 +300,7 @@ TEST_F(RenderGraph, constant_fold_background2)
EXPECT_ANY_MESSAGE(log);
CORRECT_INFO_MESSAGE(log, "Discarding closure Background.");
- builder.add_node(ShaderNodeBuilder<BackgroundNode>("Background").set("Strength", 0.0f))
+ builder.add_node(ShaderNodeBuilder<BackgroundNode>(graph, "Background").set("Strength", 0.0f))
.output_closure("Background::Background");
graph.finalize(scene);
@@ -302,10 +317,10 @@ TEST_F(RenderGraph, constant_fold_shader_add)
CORRECT_INFO_MESSAGE(log, "Folding AddClosure2::Closure to socket Diffuse::BSDF.");
INVALID_INFO_MESSAGE(log, "Folding AddClosure3");
- builder.add_node(ShaderNodeBuilder<DiffuseBsdfNode>("Diffuse"))
- .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure1"))
- .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure2"))
- .add_node(ShaderNodeBuilder<AddClosureNode>("AddClosure3"))
+ builder.add_node(ShaderNodeBuilder<DiffuseBsdfNode>(graph, "Diffuse"))
+ .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure1"))
+ .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure2"))
+ .add_node(ShaderNodeBuilder<AddClosureNode>(graph, "AddClosure3"))
.add_connection("Diffuse::BSDF", "AddClosure1::Closure1")
.add_connection("Diffuse::BSDF", "AddClosure2::Closure2")
.add_connection("AddClosure1::Closure", "AddClosure3::Closure1")
@@ -328,15 +343,15 @@ TEST_F(RenderGraph, constant_fold_shader_mix)
CORRECT_INFO_MESSAGE(log, "Folding MixClosure3::Closure to socket Diffuse::BSDF.");
builder.add_attribute("Attribute")
- .add_node(ShaderNodeBuilder<DiffuseBsdfNode>("Diffuse"))
+ .add_node(ShaderNodeBuilder<DiffuseBsdfNode>(graph, "Diffuse"))
/* choose left */
- .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure1").set("Fac", 0.0f))
+ .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure1").set("Fac", 0.0f))
.add_connection("Diffuse::BSDF", "MixClosure1::Closure1")
/* choose right */
- .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure2").set("Fac", 1.0f))
+ .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure2").set("Fac", 1.0f))
.add_connection("Diffuse::BSDF", "MixClosure2::Closure2")
/* both inputs folded the same */
- .add_node(ShaderNodeBuilder<MixClosureNode>("MixClosure3"))
+ .add_node(ShaderNodeBuilder<MixClosureNode>(graph, "MixClosure3"))
.add_connection("Attribute::Fac", "MixClosure3::Fac")
.add_connection("MixClosure1::Closure", "MixClosure3::Closure1")
.add_connection("MixClosure2::Closure", "MixClosure3::Closure2")
@@ -355,7 +370,7 @@ TEST_F(RenderGraph, constant_fold_invert)
CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to constant (0.68, 0.5, 0.32).");
builder
- .add_node(ShaderNodeBuilder<InvertNode>("Invert")
+ .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert")
.set("Fac", 0.8f)
.set("Color", make_float3(0.2f, 0.5f, 0.8f)))
.output_color("Invert::Color");
@@ -373,7 +388,7 @@ TEST_F(RenderGraph, constant_fold_invert_fac_0)
CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to socket Attribute::Color.");
builder.add_attribute("Attribute")
- .add_node(ShaderNodeBuilder<InvertNode>("Invert").set("Fac", 0.0f))
+ .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert").set("Fac", 0.0f))
.add_connection("Attribute::Color", "Invert::Color")
.output_color("Invert::Color");
@@ -390,7 +405,7 @@ TEST_F(RenderGraph, constant_fold_invert_fac_0_const)
CORRECT_INFO_MESSAGE(log, "Folding Invert::Color to constant (0.2, 0.5, 0.8).");
builder
- .add_node(ShaderNodeBuilder<InvertNode>("Invert")
+ .add_node(ShaderNodeBuilder<InvertNode>(graph, "Invert")
.set("Fac", 0.0f)
.set("Color", make_float3(0.2f, 0.5f, 0.8f)))
.output_color("Invert::Color");
@@ -408,9 +423,9 @@ TEST_F(RenderGraph, constant_fold_mix_add)
CORRECT_INFO_MESSAGE(log, "Folding MixAdd::Color to constant (0.62, 1.14, 1.42).");
builder
- .add_node(ShaderNodeBuilder<MixNode>("MixAdd")
- .set("Type", NODE_MIX_ADD)
- .set("Use Clamp", false)
+ .add_node(ShaderNodeBuilder<MixNode>(graph, "MixAdd")
+ .set_param("mix_type", NODE_MIX_ADD)
+ .set_param("use_clamp", false)
.set("Fac", 0.8f)
.set("Color1", make_float3(0.3f, 0.5f, 0.7f))
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list