diff options
Diffstat (limited to 'apps/openmb/resources/shaders/cube.frag')
| -rw-r--r-- | apps/openmb/resources/shaders/cube.frag | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/openmb/resources/shaders/cube.frag b/apps/openmb/resources/shaders/cube.frag new file mode 100644 index 0000000..cb15430 --- /dev/null +++ b/apps/openmb/resources/shaders/cube.frag @@ -0,0 +1,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); +} |