 uniform sampler2D tDepth;
 uniform mat4 inverseProjectionMatrix;
 
-layout(location = 0) out vec4 fragmentColor;
-uniform int lightCount;
+// --- CONSTANTS ---
 const float PI = 3.14159265359f;
 const float GAMMA = 2.2f;
+const float M_E = 2.718f;
 
+// --- SHADING FUNCTIONS ---
 // Calculate normal based on interpolated vertex normal, sampled normal (from normal map) and vertex tangent.
 vec3 calculateNormal(in vec3 normal, in vec3 tangent, in vec3 normalFromMap) {
     vec3 n = normalize(normal);

    return Lo;
}

void main() {

    vec3 color = applyLights();

    // Reinhard tone mapping
    color = clamp(color / (color + vec3(1.0f)), 0.0f, 1.0f);

    vec2 texCoords;
} vertexIn;

// --- OUT ---
layout(location = 0) out vec4 fragmentColor;

// --- STRUCTS ---
struct Light {
    vec4 position;
    vec3 intensities;
