diff options
Diffstat (limited to 'mons_exe/embed/shaders/basic.vert.glsl')
-rw-r--r-- | mons_exe/embed/shaders/basic.vert.glsl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/mons_exe/embed/shaders/basic.vert.glsl b/mons_exe/embed/shaders/basic.vert.glsl new file mode 100644 index 0000000..8164120 --- /dev/null +++ b/mons_exe/embed/shaders/basic.vert.glsl @@ -0,0 +1,26 @@ +#version 460 core +layout (location = 0) in vec3 aPos; +layout (location = 1) in vec3 aNormal; +layout (location = 2) in vec4 aTangent; +layout (location = 3) in vec2 aTexCoord; + +out vec3 Normal; +out vec2 TexCoord; +out vec3 FragPos; +out mat3 TBN; + +uniform mat4 transform; +uniform mat4 view; +uniform mat4 projection; + +void main() { + gl_Position = projection * view * transform * vec4(aPos, 1.0); + FragPos = vec3(transform * vec4(aPos, 1.0)); + Normal = mat3(transpose(inverse(transform))) * aNormal; + TexCoord = aTexCoord; + + vec3 T = normalize(vec3(transform * vec4(aTangent.xyz, 0.0))); + vec3 N = normalize(vec3(transform * vec4(aNormal, 0.0))); + vec3 B = aTangent.w * cross(N, T); + TBN = mat3(T,B,N); +} |