33 lines
888 B
GLSL
33 lines
888 B
GLSL
#version 430 core
|
|
|
|
in layout(location = 0) vec3 position;
|
|
in layout(location = 1) vec3 normal_in;
|
|
in layout(location = 2) vec2 UV;
|
|
in layout(location = 3) vec3 tangent;
|
|
in layout(location = 4) vec3 bitangent;
|
|
|
|
uniform mat4 MVP;
|
|
uniform mat4 MV;
|
|
uniform mat4 MVnormal;
|
|
uniform bool isIlluminated;
|
|
uniform bool isTextured;
|
|
uniform bool isNormalMapped;
|
|
|
|
out layout(location = 0) vec3 normal_out;
|
|
out layout(location = 1) vec3 vertex_out;
|
|
out layout(location = 2) vec2 uv_out;
|
|
out layout(location = 3) mat3 TBN;
|
|
|
|
void main() {
|
|
TBN = mat3(
|
|
normalize(vec3(MV * vec4(tangent, 0.0))),
|
|
normalize(vec3(MV * vec4(bitangent, 0.0))),
|
|
normalize(vec3(MV * vec4(normal_in, 0.0)))
|
|
);
|
|
|
|
normal_out = normalize(vec3(MVnormal * vec4(normal_in, 1.0f)));
|
|
vertex_out = vec3(MV*vec4(position, 1.0f));
|
|
uv_out = UV;
|
|
gl_Position = MVP * vec4(position, 1.0f);
|
|
}
|