[Bf-blender-cvs] [9fa78b3e8b6] temp-viewport-compositor-merge: Realtime Compositor: Correct multiply by alpha

Omar Emara noreply at git.blender.org
Tue Jun 28 13:07:11 CEST 2022


Commit: 9fa78b3e8b64c14e9733373f740bd1da28188426
Author: Omar Emara
Date:   Thu Jun 16 11:52:18 2022 +0200
Branches: temp-viewport-compositor-merge
https://developer.blender.org/rB9fa78b3e8b64c14e9733373f740bd1da28188426

Realtime Compositor: Correct multiply by alpha

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

M	source/blender/nodes/composite/nodes/node_composite_mixrgb.cc

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

diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc
index f2985db9a67..a8123a50e58 100644
--- a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc
+++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc
@@ -47,12 +47,19 @@ class MixRGBShaderNode : public ShaderNode {
     GPUNodeStack *inputs = get_inputs_array();
     GPUNodeStack *outputs = get_outputs_array();
 
-    GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs);
-
     if (get_use_alpha()) {
-      GPU_link(material, "multiply_by_alpha", inputs[0].link, inputs[1].link, &inputs[0].link);
+      if (!inputs[0].hasinput) {
+        GPUNodeLink *factor;
+        GPU_link(material, "set_value", GPU_uniform(inputs[0].vec), &factor);
+        GPU_link(material, "multiply_by_alpha", factor, inputs[2].link, &inputs[0].link);
+      }
+      else {
+        GPU_link(material, "multiply_by_alpha", inputs[0].link, inputs[2].link, &inputs[0].link);
+      }
     }
 
+    GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs);
+
     if (!get_should_clamp()) {
       return;
     }



More information about the Bf-blender-cvs mailing list