         }
     }
     
-    return (AmbientColor + DiffuseColor + SpecularColor);
+    return AmbientColor + calculate_shadow(position) * (DiffuseColor + SpecularColor);
 }
 
 vec4 calculate_directional_light(vec3 position, vec3 normal)

const float specularIntensity = 0.f;
const float specularPower = 5.f;

vec4 calculate_light(BaseLight light,
                       vec3 lightDirection,
                       vec3 position,

   	vec3 color = texture(colorMap, uv).xyz;
   	vec3 normal = normalize(texture(normalMap, uv).xyz);
    
    vec4 light;
    if(lightType == 1)
    {
