aboutsummaryrefslogtreecommitdiff
path: root/shaders/view_normal_mapped_normals.frag
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-06-27 10:18:39 -0700
committer3gg <3gg@shellblade.net>2025-06-27 10:18:39 -0700
commitbd57f345ed9dbed1d81683e48199626de2ea9044 (patch)
tree4221f2f2a7ad2244d2e93052bd68187ec91b8ea9 /shaders/view_normal_mapped_normals.frag
parent9a82ce0083437a4f9f58108b2c23b957d2249ad8 (diff)
Restructure projectHEADmain
Diffstat (limited to 'shaders/view_normal_mapped_normals.frag')
-rw-r--r--shaders/view_normal_mapped_normals.frag28
1 files changed, 28 insertions, 0 deletions
diff --git a/shaders/view_normal_mapped_normals.frag b/shaders/view_normal_mapped_normals.frag
new file mode 100644
index 0000000..a372c02
--- /dev/null
+++ b/shaders/view_normal_mapped_normals.frag
@@ -0,0 +1,28 @@
1precision highp float;
2
3uniform sampler2D NormalMap;
4
5in vec3 Normal;
6in vec4 Tangent;
7in vec3 Bitangent; // TODO: Compute here or in PS?
8in vec2 Texcoord;
9
10out vec4 FragColour;
11
12// TODO: Move to "normal.h"
13vec3 get_vs_normal(vec3 normal, vec4 tangent, vec3 normalMapSample) {
14 vec3 N = normal;
15 // vec3 T = normalize(interpTangent - dot(tangent, N)*N);
16 // vec3 B = normalize(interpBitangent - dot(interpTangent, N)*N - dot(interpTangent, T)*T);
17 vec3 T = tangent.xyz;
18 //vec3 B = tangent.w * cross(N,T);
19 vec3 B = Bitangent;
20 vec3 n = normalMapSample;
21 return normalize(n.x*T + n.y*B + n.z*N);
22}
23
24void main() {
25 vec3 normalMapSample = texture(NormalMap, Texcoord).xyz * 2.0 - 1.0;
26 vec3 N = get_vs_normal(Normal, Tangent, normalMapSample);
27 FragColour = vec4(pow(N, vec3(1.0 / 2.2)), 1.0);
28}