From eef5b506d5ce5086ab7e91cb243f2d387e60d9c4 Mon Sep 17 00:00:00 2001 From: Charlie Jolly Date: Wed, 19 Feb 2020 02:03:43 +0100 Subject: EEVEE: Color Ramp Ease Optimisation This patch provides an optimisation for Ease (Smoothstep) setting in the color ramp node. This optimisation exists already for Constant and Linear modes. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6880 --- .../gpu/shaders/material/gpu_shader_material_color_ramp.glsl | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_color_ramp.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_color_ramp.glsl index 9fe45f91f45..17240da4050 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_color_ramp.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_color_ramp.glsl @@ -13,6 +13,15 @@ void valtorgb_opti_linear( outalpha = outcol.a; } +void valtorgb_opti_ease( + float fac, vec2 mulbias, vec4 color1, vec4 color2, out vec4 outcol, out float outalpha) +{ + fac = clamp(fac * mulbias.x + mulbias.y, 0.0, 1.0); + fac = fac * fac * (3.0 - 2.0 * fac); + outcol = mix(color1, color2, fac); + outalpha = outcol.a; +} + void valtorgb(float fac, sampler1DArray colormap, float layer, out vec4 outcol, out float outalpha) { outcol = texture(colormap, vec2(fac, layer)); -- cgit v1.2.3