|
|
@ -12,7 +12,7 @@ |
|
|
|
in vec3 vertexPosition; |
|
|
|
in vec2 vertexTexCoord; |
|
|
|
in vec3 vertexNormal; |
|
|
|
in vec3 vertexTangent; |
|
|
|
in vec4 vertexTangent; |
|
|
|
|
|
|
|
// Input uniform values |
|
|
|
uniform mat4 mvp; |
|
|
@ -28,7 +28,7 @@ out vec3 fragBinormal; |
|
|
|
void main() |
|
|
|
{ |
|
|
|
// Calculate binormal from vertex normal and tangent |
|
|
|
vec3 vertexBinormal = cross(vertexNormal, vertexTangent); |
|
|
|
vec3 vertexBinormal = cross(vertexNormal, vec3(vertexTangent)); |
|
|
|
|
|
|
|
// Calculate fragment normal based on normal transformations |
|
|
|
mat3 normalMatrix = transpose(inverse(mat3(mMatrix))); |
|
|
@ -39,7 +39,7 @@ void main() |
|
|
|
// Send vertex attributes to fragment shader |
|
|
|
fragTexCoord = vertexTexCoord; |
|
|
|
fragNormal = normalize(normalMatrix*vertexNormal); |
|
|
|
fragTangent = normalize(normalMatrix*vertexTangent); |
|
|
|
fragTangent = normalize(normalMatrix*vec3(vertexTangent)); |
|
|
|
fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal); |
|
|
|
fragBinormal = normalize(normalMatrix*vertexBinormal); |
|
|
|
fragBinormal = cross(fragNormal, fragTangent); |
|
|
|