#version 330 uniform sampler2DArray qt_Texture0; uniform vec3 mtf_param; uniform bool invert; in vec3 qt_TexCoord0; out vec4 color; vec4 MTF(vec4 x, vec3 m) { x = (x - m.x) / (m.z - m.x); x = clamp(x, vec4(0.0), vec4(1.0)); return ((m.y - 1) * x) / ((2 * m.y - 1) * x - m.y); } void main(void) { color = texture(qt_Texture0, qt_TexCoord0); color = MTF(color, mtf_param); if(invert)color = vec4(1.0) - color; color.a = 1.0; }