2018-04-10 18:46:39 +02:00
|
|
|
#version 450
|
|
|
|
|
|
|
|
layout(binding = 0) uniform sampler s_sampler;
|
|
|
|
layout(binding = 1) uniform texture2D t_texture;
|
|
|
|
|
2018-04-13 13:47:15 +02:00
|
|
|
layout(binding = 2) uniform sampler s_gamma;
|
|
|
|
layout(binding = 3) uniform texture1D t_gamma;
|
|
|
|
|
|
|
|
layout(binding = 4)
|
|
|
|
uniform u_gamma_info_t {
|
2018-04-10 20:44:55 +02:00
|
|
|
layout(offset = 0) vec4 in_factor;
|
|
|
|
layout(offset = 16) vec4 in_offset;
|
2018-04-13 13:47:15 +02:00
|
|
|
} u_gamma_info;
|
2018-04-10 20:44:55 +02:00
|
|
|
|
2018-04-10 18:46:39 +02:00
|
|
|
layout(location = 0) in vec2 i_texcoord;
|
|
|
|
layout(location = 0) out vec4 o_color;
|
|
|
|
|
|
|
|
void main() {
|
2018-04-13 13:47:15 +02:00
|
|
|
vec4 color = texture(sampler2D(t_texture, s_sampler), i_texcoord);
|
2018-04-12 13:38:22 +02:00
|
|
|
|
2018-04-13 13:47:15 +02:00
|
|
|
vec3 cp_lookup = color.rgb;
|
|
|
|
cp_lookup *= u_gamma_info.in_factor.rgb;
|
|
|
|
cp_lookup += u_gamma_info.in_offset.rgb;
|
2018-04-12 13:38:22 +02:00
|
|
|
|
2018-04-13 13:47:15 +02:00
|
|
|
o_color = vec4(
|
|
|
|
texture(sampler1D(t_gamma, s_gamma), cp_lookup.r).r,
|
|
|
|
texture(sampler1D(t_gamma, s_gamma), cp_lookup.g).g,
|
|
|
|
texture(sampler1D(t_gamma, s_gamma), cp_lookup.b).b,
|
|
|
|
color.a);
|
2018-04-10 18:46:39 +02:00
|
|
|
}
|