#version 450

struct Material {
    vec4 ambient;
    vec4 diffuse;
    vec4 specular;
    vec4 bloom;
    float roughness;
    float metallic;
};

layout(location = 0) out vec4 outColor;

layout(std140, binding = 0) uniform UniformBuffer
{
    mat4 projectionMatrix;
    mat4 viewMatrix;
    mat4 transformationMatrix;
    vec4 cameraPosition;
    Material material;
} uniformBuffer;

void main()
{
    vec3 bloomColor = uniformBuffer.material.bloom.rgb;
    float bloomStrength = uniformBuffer.material.bloom.a;

    outColor = vec4(bloomColor * bloomStrength, 1.0);
}