1#version 310 es
2
3struct Light
4{
5    vec3 Position;
6    float Radius;
7    vec4 Color;
8};
9
10uniform vec4 UBO[12];
11layout(location = 0) in vec4 aVertex;
12layout(location = 0) out vec4 vColor;
13layout(location = 1) in vec3 aNormal;
14
15void main()
16{
17    gl_Position = mat4(UBO[0], UBO[1], UBO[2], UBO[3]) * aVertex;
18    vColor = vec4(0.0);
19    for (int _96 = 0; _96 < 4; )
20    {
21        vec3 _68 = aVertex.xyz - Light(UBO[_96 * 2 + 4].xyz, UBO[_96 * 2 + 4].w, UBO[_96 * 2 + 5]).Position;
22        vColor += ((UBO[_96 * 2 + 5] * clamp(1.0 - (length(_68) / Light(UBO[_96 * 2 + 4].xyz, UBO[_96 * 2 + 4].w, UBO[_96 * 2 + 5]).Radius), 0.0, 1.0)) * dot(aNormal, normalize(_68)));
23        _96++;
24        continue;
25    }
26}
27
28