#version 450 // SIMPLE TEXTURE : FRAGMENT SHADER // These come in from the previous shader (vertex) layout(location = 0) in vec2 image_position; // This goes out to the bound image in window_size_dependent setup layout(location = 0) out vec4 f_color; // This is bound by the descriptor set // Currently handled by the individual buffer and are 1:1 layout(set = 0, binding = 0, rgba32ui) readonly uniform uimage2D img; void main() { ivec2 pos = ivec2(gl_FragCoord.x, gl_FragCoord.y); f_color = imageLoad(img, ivec2(image_position)) / (255.0); float gamma = 0.5; f_color.rgb = pow(f_color.rgb, vec3(1.0/gamma)); }