Prepare for three channels STF

This commit is contained in:
2023-10-10 22:48:40 +02:00
parent 0c2c5f908c
commit 0a803ace10
10 changed files with 125 additions and 41 deletions
+5 -8
View File
@@ -1,12 +1,11 @@
#version 330
uniform sampler2D qt_Texture0;
uniform vec3 mtf_param;
uniform vec3 mtf_param[3];
uniform bool bw;
uniform bool invert;
uniform bool srgb;
uniform bool false_color;
uniform vec3 whiteBalance;
in vec2 qt_TexCoord0;
layout(location = 0) out vec4 color;
@@ -17,11 +16,11 @@ vec3 Linear2sRGB(vec3 color)
greaterThan(color, vec3(0.0031308)));
}
vec4 MTF(vec4 x, vec3 m)
vec4 MTF(vec4 x, vec4 low, vec4 mid, vec4 high)
{
x = (x - m.x) / (m.z - m.x);
x = (x - low) / (high - low);
x = clamp(x, vec4(0.0), vec4(1.0));
return ((m.y - 1) * x) / ((2 * m.y - 1) * x - m.y);
return ((mid - 1) * x) / ((2 * mid - 1) * x - mid);
}
vec3 falsecolor(float color)
@@ -48,7 +47,7 @@ void main(void)
{
color = texture(qt_Texture0, qt_TexCoord0);
if(bw)color = color.rrra;
color = MTF(color, mtf_param);
color = MTF(color, vec4(mtf_param[0], 0.0), vec4(mtf_param[1], 0.5), vec4(mtf_param[2], 1.0));
if(false_color)color.rgb = falsecolor(color.r);
if(invert)color.rgb = vec3(1.0) - color.rgb;
@@ -57,8 +56,6 @@ void main(void)
if(srgb)color.rgb = Linear2sRGB(color.rgb);
color.rgb *= whiteBalance;
if(any(lessThan(qt_TexCoord0, vec2(0.0))) || any(greaterThan(qt_TexCoord0, vec2(1.0))))
color = vec4(0.0, 0.0, 0.0, 1.0);