2017-07-01 3 views
-1

J'essaie d'uniformiser une matrice de modèle dans un vertex shader en utilisantretourne glUniformLocation -1

glUniformMatrix4fv(glGetAttribLocation(shaderProgram, "modelMatrix"), 
    1, GL_FALSE, glm::value_ptr(objmesh[0]->modelMatrix)); 

mais quand je l'utiliser, le modèle ne montre pas. J'ai utilisé

int location = glGetAttribLocation(shaderProgram, "modelMatrix"); 

pour trouver l'emplacement mais il ne renvoie que -1. J'ai aussi essayé d'utiliser une matrice fabriquée manuellement (en tant que matrice d'identité) dans le vertex shader et quand je le fais cela fonctionne. J'ai fait exactement la même chose avec un autre shader, juste un programme différent. Objmesh est juste un std :: vector qui contient une structure avec les sommets d'un mesh, uvs et ainsi de suite. A partir de maintenant, le modelMatrix est juste une matrice d'identité.

I la matrice uniforme dans le vertex shader comme ceci: uniform mat4 modelMatrix;

+0

Poster le code source du shader plein sommet. –

+0

J'ai trouvé le problème. Posté dans la section Réponse :) – Haplue

Répondre

0

a résolu le problème: je accidentellement utilisé glGetAttribLocation au lieu de glGetUniformLocation