Grafika_2024/projekt_grk/shaders/shader_5_1_tex_copy.vert

45 lines
1.3 KiB
GLSL

#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
layout(location = 3) in vec3 vertexTangent;
layout(location = 4) in vec3 vertexBitangent;
uniform mat4 transformation;
uniform mat4 modelMatrix;
uniform vec3 lightPos;
uniform vec3 cameraPos;
out vec3 vecNormal;
out vec3 worldPos;
out vec2 vecTex;
out vec3 viewDir; // Dodane deklaracje
out vec3 lightDir; // Dodane deklaracje
out vec3 viewDirTS; // Dodane deklaracje
out vec3 lightDirTS;
mat3 TBN;
void main()
{
vec3 normal = normalize(mat3(modelMatrix) * vertexNormal);
vec3 tangent = (modelMatrix * vec4(vertexTangent, 0.0)).xyz;
vec3 bitangent = (modelMatrix * vec4(vertexBitangent, 0.0)).xyz;
TBN = transpose(mat3(tangent, bitangent, normal));
vec3 viewDir = normalize(cameraPos - (modelMatrix * vec4(vertexPosition, 1)).xyz);
vec3 lightDir = normalize(lightPos - (modelMatrix * vec4(vertexPosition, 1)).xyz);
viewDirTS = TBN * viewDir;
lightDirTS = TBN * lightDir;
//worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
//vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
vecTex = vertexTexCoord;
vecTex.y = 1.0 - vecTex.y;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}