24 lines
579 B
GLSL

#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);
}