25 lines
620 B
GLSL
25 lines
620 B
GLSL
#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);
|
|
}
|