Grafika_Komputerowa_Interst.../cw 7/shaders/shader_5_tex.vert

48 lines
1.1 KiB
GLSL
Raw Normal View History

2024-01-12 20:37:53 +01:00
#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;
out vec3 worldPos;
out vec2 vecTex;
uniform vec3 lightPos;
uniform vec3 cameraPos;
out vec3 viewDirTS;
out vec3 lightDirTS;
2024-02-08 09:24:56 +01:00
out float distanceToCamera;
2024-01-12 20:37:53 +01:00
mat3 TBN;
2024-01-26 20:17:20 +01:00
2024-01-12 20:37:53 +01:00
void main()
{
2024-01-26 20:17:20 +01:00
2024-01-12 20:37:53 +01:00
vec3 tangent = normalize(mat3(modelMatrix) * vertexTangent);
vec3 bitangent = normalize(mat3(modelMatrix) * vertexBitangent);
vec3 normal = normalize(mat3(modelMatrix) * vertexNormal);
TBN = transpose(mat3(tangent, bitangent, normal));
vec3 worldPos = (modelMatrix * vec4(vertexPosition, 1)).xyz;
vec3 viewDir = normalize(cameraPos - worldPos);
vec3 lightDir = normalize(lightPos - worldPos);
viewDirTS = vec3(TBN * viewDir);
lightDirTS = vec3(TBN * lightDir);
vecTex = vertexTexCoord;
vecTex.y = 1.0 - vecTex.y;
2024-02-08 09:24:56 +01:00
distanceToCamera = length(worldPos - cameraPos);
2024-01-12 20:37:53 +01:00
gl_Position = transformation * vec4(vertexPosition, 1.0);
}