20 lines
537 B
Plaintext
20 lines
537 B
Plaintext
#version 460
|
|
|
|
layout(local_size_x = 16, local_size_y = 16, local_size_x = 1) in;
|
|
|
|
layout(set = 0, binding = 0, rgba8) uniform readonly image2D u_sourceImage;
|
|
layout(set = 1, binding = 0, rgba8) uniform writeonly image2D u_targetImage;
|
|
|
|
float luma(vec4 color)
|
|
{
|
|
return dot(color.rgb, vec3(0.299, 0.587, 0.114));
|
|
}
|
|
|
|
void main()
|
|
{
|
|
const ivec2 uv = ivec2(gl_GlobalInvocationID.xy);
|
|
const vec4 pixel = imageLoad(u_sourceImage, uv);
|
|
const float lum = luma(pixel);
|
|
imageStore(u_targetImage, uv, vec4(lum, lum, lum, 1.0));
|
|
}
|