[Bf-blender-cvs] [f8497caf59e] master: Geometry Nodes: Implicit conversion change from distance to average

Charlie Jolly noreply at git.blender.org
Tue Mar 16 19:05:00 CET 2021


Commit: f8497caf59e8fd6f8e42dc423c8f960a4ed7d04a
Author: Charlie Jolly
Date:   Tue Mar 16 17:03:56 2021 +0000
Branches: master
https://developer.blender.org/rBf8497caf59e8fd6f8e42dc423c8f960a4ed7d04a

Geometry Nodes: Implicit conversion change from distance to average

Use average instead of distance when converting from float3/float2 to float. This matches behaviour of shader nodes.

See: https://developer.blender.org/T86454

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D10684

===================================================================

M	source/blender/nodes/intern/node_tree_multi_function.cc

===================================================================

diff --git a/source/blender/nodes/intern/node_tree_multi_function.cc b/source/blender/nodes/intern/node_tree_multi_function.cc
index c9729d43a42..f9f199c8d1f 100644
--- a/source/blender/nodes/intern/node_tree_multi_function.cc
+++ b/source/blender/nodes/intern/node_tree_multi_function.cc
@@ -171,9 +171,9 @@ static DataTypeConversions create_implicit_conversions()
   add_implicit_conversion<float2, float3>(
       conversions, "float2 to float3", [](float2 a) { return float3(a.x, a.y, 0.0f); });
   add_implicit_conversion<float2, float>(
-      conversions, "float2 to float", [](float2 a) { return a.length(); });
+      conversions, "float2 to float", [](float2 a) { return (a.x + a.y) / 2.0f; });
   add_implicit_conversion<float2, int32_t>(
-      conversions, "float2 to int32_t", [](float2 a) { return (int32_t)a.length(); });
+      conversions, "float2 to int32_t", [](float2 a) { return (int32_t)((a.x + a.y) / 2.0f); });
   add_implicit_conversion<float2, bool>(
       conversions, "float2 to bool", [](float2 a) { return !is_zero_v2(a); });
   add_implicit_conversion<float2, Color4f>(
@@ -182,9 +182,9 @@ static DataTypeConversions create_implicit_conversions()
   add_implicit_conversion<float3, bool>(
       conversions, "float3 to boolean", [](float3 a) { return !is_zero_v3(a); });
   add_implicit_conversion<float3, float>(
-      conversions, "Vector Length", [](float3 a) { return a.length(); });
+      conversions, "float3 to float", [](float3 a) { return (a.x + a.y + a.z) / 3.0f; });
   add_implicit_conversion<float3, int32_t>(
-      conversions, "float3 to int32_t", [](float3 a) { return (int)a.length(); });
+      conversions, "float3 to int32_t", [](float3 a) { return (int)((a.x + a.y + a.z) / 3.0f); });
   add_implicit_conversion<float3, float2>(conversions);
   add_implicit_conversion<float3, Color4f>(
       conversions, "float3 to Color4f", [](float3 a) { return Color4f(a.x, a.y, a.z, 1.0f); });



More information about the Bf-blender-cvs mailing list