#version 330 core layout(location = 0) in vec3 vertexPosition_modelspace; layout(location = 1) in vec3 vertexNormal; layout(location = 2) in vec2 vertexUV; out vec2 UV; out vec3 normIn; out vec3 camDirIn; out vec3 lightDirIn; uniform mat4 MVP; uniform mat4 worldMat; const vec3 Tuning_LightPos = vec3(2, 1, -1); void main() { gl_Position = MVP * vec4(vertexPosition_modelspace,1); UV = vertexUV; normIn = vertexNormal; mat3 invWorldRot = transpose(mat3(worldMat[0].xyz, worldMat[1].xyz, worldMat[2].xyz)); vec3 worldPos = (worldMat * vec4(vertexPosition_modelspace,1)).xyz; camDirIn = invWorldRot * (vec3(3.75,0,0) - worldPos); lightDirIn = invWorldRot * (Tuning_LightPos - worldPos); }