#version 420 core layout(location = 0) in vec3 pos; layout(location = 1) in vec2 inTexCoord; layout(location = 2) in vec3 normals; layout(std140, binding = 0) uniform Camera { mat4 projection; mat4 view; vec3 position; } camera; uniform mat4 model; out vec3 vertex; // Позиция вершины в пространстве out vec3 N; // Нормаль трансформированноая out vec2 texCoord; // Текстурные координаты void main() { vec4 P = model * vec4(pos, 1.0); // трансформация вершины vertex = P.xyz; N = normalize(mat3(model) * normals); // трансформация нормали texCoord = inTexCoord; // Текстурные координаты gl_Position = camera.projection * camera.view * P; }