Conversion du transfert de matrice de OpenGL 1 à OpenGL 3
Bonjour,
je voudrais faire l'équivalent de :
Code:
1 2
| glRotatef( ang, 0.0f, 1.0f,0.0f);
glTranslatef(xp,haut,yp); |
avec les shaders :
J'ai même penser à initialiser la variable "matmat :
Code:
mamat = glGetUniformLocation(programID, "matview");
mamat est bien initialiser ainsi les shaders sans erreur de compilations.
Code:
1 2 3 4 5 6 7 8 9
| glm::mat4 Projection = glm::perspective(60.0f, 1.0f, 0.05f, 960.f);
//glm::mat4 ViewRotateX = glm::rotate(ViewTranslate, Rotate.y, glm::vec3(0.0f, -1.0f, 0.0f));
glm::mat4 View = glm::rotate(Projection, ang, glm::vec3(0.0f, 1.0f, 0.0f));
glm::mat4 ViewTranslate = glm::translate(View, glm::vec3(xp, 0.0f, yp));
glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
glm::mat4 MVP = Projection * View * Model;
GLfloat *f=glm::value_ptr(MVP);
glUniformMatrix4fv(mamat,1,GL_FALSE,f); |
shaders :
vertex :
Code:
1 2 3 4 5
| uniform vec4 matview;
void main(void)
{
gl_Position = gl_ModelViewProjectionMatrix * matview;
} |
j'ai même essayer avec :
Code:
1 2 3 4 5
| uniform vec4 matview;
void main(void)
{
gl_Position = matview;
} |
fragment :
Code:
1 2 3 4 5
| varying vec4 vCoolor;
void main (void)
{
gl_FragColor = vec4(1.0, 1.0,1.0, 1.0);
} |
Ca ne marche pas du tout du tout.
Et je n'y comprend rien .
Ou est l'erreur ?
Merci.