5 layout(location= 0) in
vec3 position;
6 layout(location= 2) in
vec3 normal;
7 out
vec3 vertex_normal;
9 uniform mat4 mvpMatrix;
10 uniform mat4 mvMatrix;
14 gl_Position= mvpMatrix *
vec4(position, 1);
16 vertex_normal= mat3(mvMatrix) * normal;
21 #ifdef FRAGMENT_SHADER
23 in
vec3 vertex_normal;
24 out
vec4 fragment_color;
32 float cos_theta=
max(0.0, normal.z);
33 color= color * cos_theta;
35 fragment_color=
vec4(color, 1);
Point max(const Point &a, const Point &b)
renvoie la plus grande composante de chaque point. x, y, z= max(a.x, b.x), max(a.y,...
Vector normalize(const Vector &v)
renvoie un vecteur unitaire / longueur == 1.
vecteur generique, utilitaire.
vecteur generique 4d, ou 3d homogene, utilitaire.