diff options
-rw-r--r-- | intern/cycles/kernel/shaders/node_mix.osl | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_color_util.h | 4 | ||||
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_mix_rgb.glsl | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/intern/cycles/kernel/shaders/node_mix.osl b/intern/cycles/kernel/shaders/node_mix.osl index 8caea6803ed..9fbd3391ade 100644 --- a/intern/cycles/kernel/shaders/node_mix.osl +++ b/intern/cycles/kernel/shaders/node_mix.osl @@ -91,12 +91,12 @@ color node_mix_diff(float t, color col1, color col2) color node_mix_dark(float t, color col1, color col2) { - return min(col1, col2) * t + col1 * (1.0 - t); + return mix(col1, min(col1, col2), t); } color node_mix_light(float t, color col1, color col2) { - return max(col1, col2 * t); + return mix(col1, max(col1, col2), t); } color node_mix_dodge(float t, color col1, color col2) diff --git a/intern/cycles/kernel/svm/svm_color_util.h b/intern/cycles/kernel/svm/svm_color_util.h index 0f571eb7253..1a0fa03305e 100644 --- a/intern/cycles/kernel/svm/svm_color_util.h +++ b/intern/cycles/kernel/svm/svm_color_util.h @@ -92,12 +92,12 @@ ccl_device float3 svm_mix_diff(float t, float3 col1, float3 col2) ccl_device float3 svm_mix_dark(float t, float3 col1, float3 col2) { - return min(col1, col2) * t + col1 * (1.0f - t); + return interp(col1, min(col1, col2), t); } ccl_device float3 svm_mix_light(float t, float3 col1, float3 col2) { - return max(col1, col2 * t); + return interp(col1, max(col1, col2), t); } ccl_device float3 svm_mix_dodge(float t, float3 col1, float3 col2) diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_mix_rgb.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_mix_rgb.glsl index abe6081489d..e089aec1d92 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_mix_rgb.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_mix_rgb.glsl @@ -92,14 +92,14 @@ void mix_diff(float fac, vec4 col1, vec4 col2, out vec4 outcol) void mix_dark(float fac, vec4 col1, vec4 col2, out vec4 outcol) { fac = clamp(fac, 0.0, 1.0); - outcol.rgb = min(col1.rgb, col2.rgb * fac); + outcol.rgb = mix(col1.rgb, min(col1.rgb, col2.rgb), fac); outcol.a = col1.a; } void mix_light(float fac, vec4 col1, vec4 col2, out vec4 outcol) { fac = clamp(fac, 0.0, 1.0); - outcol.rgb = max(col1.rgb, col2.rgb * fac); + outcol.rgb = mix(col1.rgb, max(col1.rgb, col2.rgb), fac); outcol.a = col1.a; } |