问题描述
我必须像这样将一个 mat4 数组作为统一传递给我的顶点着色器:
在顶点着色器中:
uniform mat4 u_jointMatrix[2];
在我的 C++ 程序中,我是这样做的:
glm::mat4 jointM[2];
//I filled jointM with 32 values (16 x 2)
int jointMatrixLoc = glGetUniformlocation(programT,"u_jointMatrix");
gluniformMatrix4fv(jointMatrixLoc,1,GL_FALSE,glm::value_ptr(jointM[2]));
我写这个是因为 gluniformMatrix4fv(jointMatrixLoc,glm::value_ptr(jointM));
不起作用。
我认为我所做的不正确。有人可以确认吗?
解决方法
integer = 0
寻址具有 2 个元素的数组中的第 3 个元素。您必须指定指向第一个元素的指针:
jointM[2]
glUniformMatrix4fv(jointMatrixLoc,1,GL_FALSE,glm::value_ptr(jointM[2]));