7 uniform
vec3 positions[36];
9 uniform mat4 mvpMatrix;
10 uniform mat4 normalMatrix;
13 out
vec3 vertex_normal;
16 vec3 a= positions[gl_VertexID - gl_VertexID % 3];
17 vec3 b= positions[gl_VertexID - gl_VertexID % 3 +1];
18 vec3 c= positions[gl_VertexID - gl_VertexID % 3 +2];
22 vertex_normal=
vec3(normalMatrix *
vec4(n, 0));
23 gl_Position= mvpMatrix *
vec4(positions[gl_VertexID], 1);
28 #ifdef FRAGMENT_SHADER
30 in
vec3 vertex_normal;
32 out
vec4 fragment_color;
36 float face_id= float(gl_PrimitiveID /2) / 5.0;
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.
Vector cross(const Vector &u, const Vector &v)
renvoie le produit vectoriel de 2 vecteurs.