grk_5sem_labs/cw 5/shaders/shader_5_1.frag

29 lines
674 B
GLSL
Raw Normal View History

2023-11-18 02:25:43 +01:00
#version 430 core
uniform vec3 color;
uniform vec3 lightDir;
uniform vec3 lightColor;
uniform vec3 cameraPos;
uniform float time;
in vec3 vertexNormalOut;
2023-11-18 02:56:00 +01:00
in vec3 vertexPosOut;
2023-11-18 02:25:43 +01:00
out vec4 outColor;
void main()
{
vec3 normalizedVertexNormal = normalize(vertexNormalOut);
float intensity = dot(normalizedVertexNormal, -lightDir);
intensity = max(intensity, 0.0);
vec3 viewDir = normalize(cameraPos - vertexPosOut);
vec3 reflectDir = reflect(lightDir, normalizedVertexNormal);
float glossPow = 8;
float specular = pow(max(dot(viewDir, reflectDir), 0.0), glossPow);
float diffuse = intensity;
2023-11-18 02:56:00 +01:00
outColor = vec4(lightColor * (color * diffuse + specular ), 1.0);
2023-11-18 02:25:43 +01:00
}