[Bf-blender-cvs] [244f61e9e9a] temp-vulkan-shader: Fix motion patch shaders.

Jeroen Bakker noreply at git.blender.org
Fri Dec 2 12:04:58 CET 2022


Commit: 244f61e9e9af12d218d7c3c3a4d442c7efcd5204
Author: Jeroen Bakker
Date:   Fri Dec 2 10:59:41 2022 +0100
Branches: temp-vulkan-shader
https://developer.blender.org/rB244f61e9e9af12d218d7c3c3a4d442c7efcd5204

Fix motion patch shaders.

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

M	source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert.glsl

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

diff --git a/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert.glsl
index a56ca6d41b8..331dcdf6519 100644
--- a/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert.glsl
@@ -13,13 +13,12 @@ vec2 proj(vec4 pos)
   return (0.5 * (pos.xy / pos.w) + 0.5) * sizeViewport.xy;
 }
 
-#ifdef GPU_VULKAN
-// TODO(jbakker): Fix this macros.
-#define SET_INTENSITY(A, B, C, min, max) 0.0
-#else
-#define SET_INTENSITY(A, B, C, min, max) \
-  (((1.0 - (float(C - B) / float(C - A))) * (max - min)) + min)
-#endif
+float calc_intensity(int segment_start, int segment_current, int segment_end, float min, float max)
+{
+  return ((1.0 - (float(segment_end - segment_current) / float(segment_end - segment_start))) *
+          (max - min)) +
+         min;
+}
 
 void main()
 {
@@ -44,10 +43,10 @@ void main()
     else {
       /* black - before frameCurrent */
       if (selected) {
-        intensity = SET_INTENSITY(frameStart, frame, frameCurrent, 0.25, 0.75);
+        intensity = calc_intensity(frameStart, frame, frameCurrent, 0.25, 0.75);
       }
       else {
-        intensity = SET_INTENSITY(frameStart, frame, frameCurrent, 0.68, 0.92);
+        intensity = calc_intensity(frameStart, frame, frameCurrent, 0.68, 0.92);
       }
       interp.color.rgb = mix(colorWire.rgb, blend_base, intensity);
     }
@@ -60,10 +59,10 @@ void main()
     else {
       /* blue - after frameCurrent */
       if (selected) {
-        intensity = SET_INTENSITY(frameCurrent, frame, frameEnd, 0.25, 0.75);
+        intensity = calc_intensity(frameCurrent, frame, frameEnd, 0.25, 0.75);
       }
       else {
-        intensity = SET_INTENSITY(frameCurrent, frame, frameEnd, 0.68, 0.92);
+        intensity = calc_intensity(frameCurrent, frame, frameEnd, 0.68, 0.92);
       }
 
       interp.color.rgb = mix(colorBonePose.rgb, blend_base, intensity);



More information about the Bf-blender-cvs mailing list