GLSL. Can someone explain why gl_FragCoord.xy / screenSize is performed and for what reason? I'm new to shaders and know that you can color pixels with gl_FragColor but sometimes there is this thing:

vec2 uv = gl_FragCoord.xy / screenSize; // or resolution or smthn depends on the implementation


If gl_FragCoord is like pixel coordinates, what does uv get?

Why is it often done in GLSL?

If someone could even draw an example of which part of the screen will be UV it will be very helpful!
First, gl_FragCoord.xy are screen space coordinates of current pixel based on viewport size. So if viewport size is width=5, height=4 then each fragment contains:

Why are uvs needed? For example I rendered geometry to screen quad and then I need to apply some postprocessing on this quad in another rendering pass. To sample from that quad I need texture coordinates in range [0, 1]. So to calculate them I perform division gl_FragCoord.xy / viewPortSize.