diff options
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl b/source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl new file mode 100644 index 00000000000..2500ff83abe --- /dev/null +++ b/source/blender/draw/engines/overlay/shaders/paint_vertcol_frag.glsl @@ -0,0 +1,28 @@ + +in vec3 finalColor; + +out vec4 fragColor; + +uniform float opacity = 1.0; +uniform bool useAlphaBlend = false; + +vec3 linear_to_srgb_attr(vec3 c) +{ + c = max(c, vec3(0.0)); + vec3 c1 = c * 12.92; + vec3 c2 = 1.055 * pow(c, vec3(1.0 / 2.4)) - 0.055; + return mix(c1, c2, step(vec3(0.0031308), c)); +} + +void main() +{ + vec3 color = linear_to_srgb_attr(finalColor); + + if (useAlphaBlend) { + fragColor = vec4(color, opacity); + } + else { + /* mix with 1.0 -> is like opacity when using multiply blend mode */ + fragColor = vec4(mix(vec3(1.0), color, opacity), 1.0); + } +} |