gKit2 light
Loading...
Searching...
No Matches
instance_buffer.glsl
Go to the documentation of this file.
1
3
4#version 330
5
6#ifdef VERTEX_SHADER
7layout(location= 0) in vec3 position;
8layout(location= 2) in vec3 normal;
9
10// l'attribut d'instance se declare "normalement", c'est l'application qui doit correctement configurer le vao...
11layout(location= 1) in vec3 instance_position;
12
13uniform mat4 mvpMatrix;
14uniform mat4 normalMatrix;
15
16out vec3 vertex_normal;
17
18void 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
28in vec3 vertex_normal;
29
30out vec4 fragment_color;
31
32void 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:167
vecteur generique, utilitaire.
Definition vec.h:169
vecteur generique 4d, ou 3d homogene, utilitaire.
Definition vec.h:192