From bd57f345ed9dbed1d81683e48199626de2ea9044 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 27 Jun 2025 10:18:39 -0700 Subject: Restructure project --- shaders/view_normal_mapped_normals.frag | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 shaders/view_normal_mapped_normals.frag (limited to 'shaders/view_normal_mapped_normals.frag') 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 @@ +precision highp float; + +uniform sampler2D NormalMap; + +in vec3 Normal; +in vec4 Tangent; +in vec3 Bitangent; // TODO: Compute here or in PS? +in vec2 Texcoord; + +out vec4 FragColour; + +// TODO: Move to "normal.h" +vec3 get_vs_normal(vec3 normal, vec4 tangent, vec3 normalMapSample) { + vec3 N = normal; + // vec3 T = normalize(interpTangent - dot(tangent, N)*N); + // vec3 B = normalize(interpBitangent - dot(interpTangent, N)*N - dot(interpTangent, T)*T); + vec3 T = tangent.xyz; + //vec3 B = tangent.w * cross(N,T); + vec3 B = Bitangent; + vec3 n = normalMapSample; + return normalize(n.x*T + n.y*B + n.z*N); +} + +void main() { + vec3 normalMapSample = texture(NormalMap, Texcoord).xyz * 2.0 - 1.0; + vec3 N = get_vs_normal(Normal, Tangent, normalMapSample); + FragColour = vec4(pow(N, vec3(1.0 / 2.2)), 1.0); +} -- cgit v1.2.3