aboutsummaryrefslogtreecommitdiff
path: root/apps/openmb/resources/shaders/cube.frag
blob: cb15430ca6d424cec5c696df9872d72c6c696503 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#version 330 core
out vec4 FragColor;
uniform vec3 color;
in vec3 vFragPos;
uniform vec3 cameraPos;
uniform vec3 fogColor;
uniform float fogDensity;
uniform float fogAmount;

void main()
{
    // Basic color with fog applied
    vec3 base = color;

    // vFragPos provided by vertex shader
    float dist = length(vFragPos - cameraPos);
    float fogFactor = 1.0 - exp(-fogDensity * dist);
    fogFactor = clamp(fogFactor * fogAmount, 0.0, 1.0);
    vec3 finalColor = mix(base, fogColor, fogFactor);
    FragColor = vec4(finalColor, 1.0);
}