gKit2 light
instance_buffer.glsl
Go to the documentation of this file.
1 
3 
4 #version 330
5 
6 #ifdef VERTEX_SHADER
7 layout(location= 0) in vec3 position;
8 layout(location= 2) in vec3 normal;
9 
10 // l'attribut d'instance se declare "normalement", c'est l'application qui doit correctement configurer le vao...
11 layout(location= 1) in vec3 instance_position;
12 
13 uniform mat4 mvpMatrix;
14 uniform mat4 normalMatrix;
15 
16 out vec3 vertex_normal;
17 
18 void main( )
19 {
20  vec3 p= position + instance_position;
21  gl_Position= mvpMatrix * vec4(p, 1);
22 
23  vertex_normal= mat3(normalMatrix) * normal;
24 }
25 #endif
26 
27 #ifdef FRAGMENT_SHADER
28 in vec3 vertex_normal;
29 
30 out vec4 fragment_color;
31 
32 void main( )
33 {
34  fragment_color= vec4(abs(normalize(vertex_normal).zzz), 1);
35 }
36 
37 #endif
Vector normalize(const Vector &v)
renvoie un vecteur unitaire / longueur == 1.
Definition: vec.cpp:123
vecteur generique, utilitaire.
Definition: vec.h:146
vecteur generique 4d, ou 3d homogene, utilitaire.
Definition: vec.h:168