5 layout(location= 0) in
vec3 position;
7 layout(location= 2) in
vec3 normal;
8 out
vec3 vertex_normal;
10 uniform mat4 mvpMatrix;
11 uniform mat4 normalMatrix;
16 float x= float(gl_InstanceID % 5) - 2;
17 float y= float(gl_InstanceID / 5) - 2;
20 gl_Position= mvpMatrix *
vec4(position +
vec3(x * 20, y * 20, 0), 1);
21 vertex_normal= mat3(normalMatrix) * normal;
26 #ifdef FRAGMENT_SHADER
28 in
vec3 vertex_normal;
30 out
vec4 fragment_color;
35 float cos_theta= abs(normal.z);
37 vec3 color= abs(normal);
38 color= color * cos_theta;
40 fragment_color=
vec4(color, 1);
Vector normalize(const Vector &v)
renvoie un vecteur unitaire / longueur == 1.
vecteur generique, utilitaire.
vecteur generique 4d, ou 3d homogene, utilitaire.