31 lines
762 B
GLSL
31 lines
762 B
GLSL
#version 330 core
|
|
|
|
in vec3 Normal;
|
|
in vec3 FragPos;
|
|
|
|
out vec4 FragColor;
|
|
|
|
void main()
|
|
{
|
|
vec3 objectColor = vec3(1.0, 1.0, 1.0);
|
|
vec3 result;
|
|
|
|
// Ambient lighting
|
|
vec3 ambientLightColor = vec3(1.0, 1.0, 1.0);
|
|
float ambientStrength = 0.0;
|
|
vec3 ambient = ambientStrength * ambientLightColor;
|
|
|
|
// Directional lighting
|
|
vec3 dirColorHi = vec3(.39, .40, .21) * 2.0;
|
|
vec3 dirColorLo = vec3(.45, .22, .33) * 2.0;
|
|
vec3 lightPos = vec3(10.0, 7.0, -8.0);
|
|
vec3 normal = normalize(Normal);
|
|
vec3 lightDir = normalize(lightPos - FragPos);
|
|
float diff = dot(normal, lightDir) * .5 + .5;
|
|
vec3 diffuse = mix(dirColorLo, dirColorHi, diff);
|
|
|
|
result = (ambient + diffuse) * objectColor;
|
|
|
|
FragColor = vec4(result, 1.0);
|
|
}
|