Calcul des normales dans le vertex shader
Bonjour a tous,
J'ai suivit le tuto "La 3D avec le module OpenGL de Qt" (particulièrement la partie 9-C. Utilisation des shaders). Bravo pour ces explications cela m'a permis de débuter avec les shaders.
Néanmoins j'ai une petite question qui vous semblera peut être bête mais je suis vraiment débutant .....
La voici :
- N'ayant pas a ma disposition la carte des normales (image RGB), je les calcul au préalable à partir des dérivés des hauteurs placées dans chaque vertex. Cela fonction plutôt bien. Mais, est il possible de réaliser ce calcul dans le shader_vertex ?
Car dans le vertex_shader je pondère mes hauteurs par un coeff (applati) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #version 130
in vec4 vertex;
//in vec4 normal; ??????? je voudrai le calculer dans le shader ??????????
//in vec2 texture_coordonnees;
out float color_factor;
//out vec4 texture_color;
uniform mat4 modelViewProjection;
//uniform mat4 matrixpmv;
uniform vec4 light_direction;
uniform vec4 applati;
//uniform sampler2D texture2d;
void main(void)
{
color_factor = max(dot(normal, light_direction), 0.0);
//texture_color = texture(texture2d, texture_coordonnees.st);
gl_Position = modelViewProjection * (vertex * applati);
} |
Par avance merci.