#version 330 core in vec4 fragColor; in vec3 fragPos; in vec3 fragNormal; out vec4 f_color; float map(float value, float min1, float max1, float min2, float max2) { return min2 + (value - min1) * (max2 - min2) / (max1 - min1); } void main(){ vec3 lightColor = vec3(1, 1, 1); vec3 lightDir = vec3(1, 1, 1); // диффузное освещение // dot получается [-1 ... 1] float diff = dot(normalize(fragNormal), normalize(lightDir)); // теперь делаем диапазон [0.2 ... 1] diff = map(diff, -1, 1, 0.2, 1); f_color = vec4(diff * lightColor * fragColor.rgb, fragColor.a); }