aboutsummaryrefslogtreecommitdiff
path: root/apps/openmb/resources/shaders/cube.frag
diff options
context:
space:
mode:
Diffstat (limited to 'apps/openmb/resources/shaders/cube.frag')
-rw-r--r--apps/openmb/resources/shaders/cube.frag21
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);
+}