[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