clamp for Mix node
[blender.git] / intern / cycles / kernel / osl / nodes / node_mix.osl
index 8a462c995d369b15cd640630e7ad2029bcec66ef..9ba58e2b56ec726e51a35e78127ee0c1373be3a7 100644 (file)
@@ -267,8 +267,20 @@ color node_mix_linear(float t, color col1, color col2)
        return outcol;
 }
 
+color node_mix_clamp(color col)
+{
+       color outcol = col;
+
+       outcol[0] = clamp(col[0], 0.0, 1.0);
+       outcol[1] = clamp(col[2], 0.0, 1.0);
+       outcol[2] = clamp(col[2], 0.0, 1.0);
+
+       return outcol;
+}
+
 shader node_mix(
        string type = "Mix",
+       int Clamp = false,
        float Fac = 0.5,
        color Color1 = color(0.0, 0.0, 0.0),
        color Color2 = color(0.0, 0.0, 0.0),
@@ -312,5 +324,8 @@ shader node_mix(
                Color = node_mix_soft(t, Color1, Color2);
        if(type == "Linear Light")
                Color = node_mix_linear(t, Color1, Color2);
+
+       if(Clamp)
+               Color = node_mix_clamp(Color);
 }