 uniform vec3 multiply = vec3(1.0, 1.0, 1.0);
 uniform Material material;
 uniform Light light;
+uniform Camera camera;
 uniform Fog fog = Fog(vec3(1.0, 1.0, 1.0), 200.0, 300.0);
 uniform sampler2D diffuse_map;
 uniform sampler2D light_map;

    color.rgb *= multiply;

    //Fog
    float distance = length(fragment.position.xyz);
    color.rgb = mix(color.rgb, fog.color, fog_linear(distance, fog.near, fog.far));
    color.rgb = mix(color.rgb, overlay.rgb, overlay.a);


    vec3 ambient;
    mat4 view;
    mat4 projection;
};

struct Camera {
    vec3 position;
};

struct Fog {
