aboutsummaryrefslogtreecommitdiff
path: root/shaders/view_normal_mapped_normals.frag
diff options
context:
space:
mode:
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}