forked from bartvdbraak/blender
Fix T70605: incorrect darken and lighten rgb mix mode
Differential Revision: https://developer.blender.org/D6058 Reviewers: brecht, fclem
This commit is contained in:
parent
c2a7e79047
commit
2a9b162d94
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user