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:
authorCharlie Jolly <charlie>2021-03-16 20:03:56 +0300
committerCharlie Jolly <mistajolly@gmail.com>2021-03-16 21:04:41 +0300
commitf8497caf59e8fd6f8e42dc423c8f960a4ed7d04a (patch)
treeadd262e4de297e9cb734c15aa27f65fa5427fbc0
parent04e1feb83051f75317309ec3659b9263a99dbd7e (diff)
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
-rw-r--r--source/blender/nodes/intern/node_tree_multi_function.cc8
1 files changed, 4 insertions, 4 deletions
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); });