Ho letto alcuni tutorial (di base) sugli shader. Finora hanno spiegato come impostare le variabili nel tuo shader. Ma questo riguardava solo intarsi, galleggianti o vettori. Non riesco a trovare nulla su come impostare una variabile mat4. Il mio Shader prevede quanto segue:Impostazione di un mat4 in OpenGL
uniform vec3 CameraPos;
uniform mat4 ModelWorld4x4;
Quindi la posizione della telecamera e la matrice mondo di un modello. Penso di avere il diritto CameraPos, ma come diavolo posso impostare la variabile ModelWorld4x4 ??
Ecco come ho impostato la vector3
campos = glGetUniformLocation(shader.id(), "CameraPos");
glUniform3f(campos, 0.0f, 0.0f, 3.0f);
Questo è (uno dei metodi) come ho cercato di impostare il Mat4
glGetFloatv(GL_MODELVIEW_MATRIX, modelworld);
modelw = glGetUniformLocation(shader.id(), "ModelWorld4x4");
glUniformMatrix4fv(g_modelworld4x4, modelworld); // Not working
sto usando la libreria Assimp per caricare un modello, quindi attualmente la matrice del mondo è memorizzata nella struttura aiMatrix4x4.
// world matrix of the model
aiMatrix4x4 m = nd->mTransformation;
// Save in a global variable
g_modelworld4x4 = m;