#version 330 core layout (location = 0) in vec3 v_position; layout (location = 1) in vec3 v_normal; layout (location = 2) in vec3 v_color; out vec4 a_color; uniform mat4 projview; uniform mat4 model; void main(){ // gl_Position = vec4(v_position, 1) * projview; gl_Position = projview * model * vec4(v_position, 1); // dot получается [-1 ... 1] float l = dot((model * vec4(v_position, 1)).xyz, normalize(vec3(1, 1, 1))); // сначала делаем диапазон [1 ... 3] // потом [0.5 ... 1] l = (l + 2) / 3; a_color = vec4(v_color * l, 1); }