bsp viewer
[tar-legacy.git] / MCDV / lit.fs
1 #version 330 core
2 out vec4 FragColor;
3
4 struct DirLight {
5 vec3 direction;
6
7 vec3 ambient;
8 vec3 diffuse;
9 };
10
11 in vec3 FragPos;
12 in vec3 Normal;
13
14 uniform vec3 viewPos;
15
16 //Lights
17 uniform DirLight directional;
18 uniform vec3 color;
19
20 //Prototypes
21 vec3 CalcDirLight(DirLight light, vec3 normal, vec3 viewDir);
22
23 void main()
24 {
25 vec3 viewDir = normalize(viewPos - FragPos);
26
27 FragColor = vec4(CalcDirLight(directional, Normal, viewDir) * color, 1.0);
28 }
29
30 vec3 CalcDirLight(DirLight light, vec3 normal, vec3 viewDir)
31 {
32 //Ambient value
33 vec3 ambient = light.ambient;
34
35 vec3 norm = normalize(normal);
36
37 //diffuse
38 vec3 lightDir = normalize(-light.direction);
39 float diff = max(dot(norm, lightDir), 0.0);
40 vec3 diffuse = light.diffuse * diff;
41
42 return (ambient + diffuse);
43 }