diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-02 17:17:05 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-02 17:45:08 +0300 |
commit | befbf7eb9b7d48113bb91c1fcf3febf439286134 (patch) | |
tree | bbc40290f879002c8a636b77451f926582d65a57 /source/blender/draw/modes/shaders/paint_vertex_frag.glsl | |
parent | a2b05accea6e2879832ae4ac4465ca11d49622c5 (diff) |
Vertex Paint: Use Linear colors for interpolation.
This matches Cycles and Eevee's behaviour.
Diffstat (limited to 'source/blender/draw/modes/shaders/paint_vertex_frag.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/paint_vertex_frag.glsl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/paint_vertex_frag.glsl b/source/blender/draw/modes/shaders/paint_vertex_frag.glsl new file mode 100644 index 00000000000..5a00fec9c43 --- /dev/null +++ b/source/blender/draw/modes/shaders/paint_vertex_frag.glsl @@ -0,0 +1,17 @@ + +in vec3 finalColor; + +out vec4 fragColor; + +vec3 linear_to_srgb_attrib(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() +{ + fragColor.rgb = linear_to_srgb_attrib(finalColor); + fragColor.a = 1.0; +} |