k3s2-graphics-lab/res/main-colored.fsh

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