2 #extension GL_ARB_shader_draw_parameters : require
6 layout(location= 0) in
vec3 position;
7 out
vec3 vertex_position;
10 uniform mat4 viewMatrix;
13 layout(row_major) uniform modelBuffer
18 uniform mat4 model[25];
23 gl_Position= vpMatrix * model[gl_DrawIDARB] *
vec4(position, 1);
24 vertex_position=
vec3(viewMatrix * model[gl_DrawIDARB] *
vec4(position, 1));
29 #ifdef FRAGMENT_SHADER
31 in
vec3 vertex_position;
33 out
vec4 fragment_color;
42 float cos_theta= abs(normal.z);
43 color= color * cos_theta;
45 fragment_color=
vec4(color.rgb, 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.