我一直在閱讀一些關於着色器的(基本)教程。到目前爲止,他們已經介紹瞭如何在着色器中設置變量。但這只是關於整數,浮點數或矢量。我找不到有關如何設置mat4變量的任何信息。我的着色器預計如下:在OpenGL中設置mat4
uniform vec3 CameraPos;
uniform mat4 ModelWorld4x4;
所以攝像頭位置和模型的世界矩陣。我認爲我有CameraPos的權利,但我怎麼設置ModelWorld4x4變量?
我這是怎麼設置的Vector3
campos = glGetUniformLocation(shader.id(), "CameraPos");
glUniform3f(campos, 0.0f, 0.0f, 3.0f);
這是(方法之一),我如何試圖設置MAT4
glGetFloatv(GL_MODELVIEW_MATRIX, modelworld);
modelw = glGetUniformLocation(shader.id(), "ModelWorld4x4");
glUniformMatrix4fv(g_modelworld4x4, modelworld); // Not working
我使用Assimp庫加載模型,所以當前世界矩陣存儲在aiMatrix4x4結構中。
// world matrix of the model
aiMatrix4x4 m = nd->mTransformation;
// Save in a global variable
g_modelworld4x4 = m;