This repository has been archived on 2023-05-27. You can view files and clone it, but cannot push or open issues or pull requests.
api8/shaders/manif.fs

23 lines
673 B
Forth
Raw Normal View History

2023-05-01 01:00:50 +02:00
#version 330
2023-05-08 12:16:29 +02:00
in vec4 pos_model;
in vec3 vec_normal;
2023-05-01 01:00:50 +02:00
out vec4 fragColor;
2023-05-08 10:38:45 +02:00
uniform vec4 couleur;
2023-05-08 15:26:47 +02:00
uniform vec4 lum_pos;
2023-05-08 15:06:42 +02:00
uniform mat4 view;
2023-05-08 15:26:47 +02:00
uniform vec4 lum_color;
2023-05-08 10:38:45 +02:00
2023-05-01 01:00:50 +02:00
void main() {
2023-05-08 15:06:42 +02:00
const vec3 vue = vec3(0, 0, -1);
const vec4 soleil_color = vec4(0.81f, 0.78f, 0.66f, 1.0f);
2023-05-08 15:26:47 +02:00
vec3 torche = normalize(pos_model.xyz - lum_pos.xyz);
2023-05-12 11:56:18 +02:00
float intensite_lumineuse = clamp(dot(vec_normal, -torche), 0., 1.);
2023-05-08 15:06:42 +02:00
vec3 reflet = (transpose(inverse(view)) * vec4(reflect(torche, vec_normal), 0)).xyz;
2023-05-12 11:56:18 +02:00
float intensite_specularite = pow(clamp(dot(reflet, -vue), 0., 1.), 10);
2023-05-08 15:06:42 +02:00
2023-05-08 15:26:47 +02:00
fragColor = intensite_specularite * lum_color + 0.1 * soleil_color + 0.9 * intensite_lumineuse * couleur;
2023-05-01 01:00:50 +02:00
}