]> git.localhorst.tv Git - tacos-assets.git/blob - shader/floor.fragment.glsl
simple cursor shader
[tacos-assets.git] / shader / floor.fragment.glsl
1 #version 330 core
2
3 in vec3 view_position;
4 in vec3 view_normal;
5
6 struct DirectionalLight {
7         // direction in view space
8         vec3 direction;
9         vec3 ambient;
10         vec3 diffuse;
11         vec3 specular;
12 };
13 uniform DirectionalLight global_light = DirectionalLight(
14         vec3(0.57735026918962576451),
15         vec3(0.1),
16         vec3(1.0),
17         vec3(1.0)
18 );
19
20
21 void main() {
22         // TODO: pull from texture (or some other source)
23         const vec3 material_color = vec3(1.0);
24
25         vec3 normal = normalize(view_normal);
26         float cos_theta = dot(normal, global_light.direction);
27         float cos_alpha = dot(-normalize(view_position), reflect(-global_light.direction, normal));
28
29         vec3 ambient = global_light.ambient * material_color;
30         vec3 diffuse = global_light.diffuse * material_color * max(0.0, cos_theta);
31         vec3 specular = global_light.specular * pow(max(0.0, cos_alpha), 5);
32
33         gl_FragColor = vec4(ambient + diffuse + specular, 1.0);
34 }