From ca2835943ca4327ad08b54af480e0c6333df201f Mon Sep 17 00:00:00 2001
From: talha <talha@talhaamir.xyz>
Date: Mon, 22 Apr 2024 03:38:29 +0500
Subject: Completed main levels to progress to text-rendering and 2d
 development.

- Only lessons left are geometry shaders and anti-aliasing
- will get to those later on soon
- need to do text rendering now
---
 .../basic quads/shaders/depth_test.fs.glsl         | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 source/lessons/instanced_rendering/basic quads/shaders/depth_test.fs.glsl

(limited to 'source/lessons/instanced_rendering/basic quads/shaders/depth_test.fs.glsl')

diff --git a/source/lessons/instanced_rendering/basic quads/shaders/depth_test.fs.glsl b/source/lessons/instanced_rendering/basic quads/shaders/depth_test.fs.glsl
new file mode 100644
index 0000000..796d849
--- /dev/null
+++ b/source/lessons/instanced_rendering/basic quads/shaders/depth_test.fs.glsl	
@@ -0,0 +1,30 @@
+#version 330 core
+
+
+in vec2 TexCoords;
+in vec3 VertexWorldPos;
+uniform sampler2D TexId;
+out vec4 FragColor;
+
+uniform float near = 0.1f;
+uniform float far = 100.0f;
+
+/* @note
+float linear_fragment_depth = MakeDepthLinear(non_linear_fragment_depth);
+float scaled_lfd = linear_fragment_depth/far;
+
+gives us the z value in eye space.
+This is purely for learning purposes.
+The equation used in MakeDepthLinear is derived from the PerspectiveProjectionMatrix.
+Take a look at the equation for that in the codebase 
+or here: https://www.songho.ca/opengl/gl_projectionmatrix.html
+*/
+float MakeDepthLinear(float depth) {
+  float ndc = 2.0f*depth - 1;
+  float linear_depth = (2.0 * far * near)/(far + near - ndc*(far - near));
+  return linear_depth;
+}
+
+void main() {
+    FragColor = texture(TexId, TexCoords);
+}
-- 
cgit v1.2.3