From 65fa5a19261d90a7fe29ebbcaa80dab56ca373df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sat, 17 Nov 2018 18:20:10 +0100 Subject: Eevee: Optimize Color Ramp node for common cases. --- source/blender/gpu/shaders/gpu_shader_material.glsl | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source/blender/gpu/shaders') diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 0d54f7fa69d..6c7c8f24f51 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -802,6 +802,19 @@ void mix_linear(float fac, vec4 col1, vec4 col2, out vec4 outcol) outcol = col1 + fac * (2.0 * (col2 - vec4(0.5))); } +void valtorgb_opti_constant(float fac, float edge, vec4 color1, vec4 color2, out vec4 outcol, out float outalpha) +{ + outcol = (fac > edge) ? color2 : color1; + outalpha = outcol.a; +} + +void valtorgb_opti_linear(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); + 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