我必须将 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, 1, GL_FALSE, glm::value_ptr(jointM));
不起作用。
我认为我的做法是不正确的。有人可以证实吗?
jointM[2]
对具有 2 个元素的数组中的第 3 个元素进行寻址。您必须指定指向第一个元素的指针:
glUniformMatrix4fv(jointMatrixLoc, 1, GL_FALSE, glm::value_ptr(jointM[2]));
glUniformMatrix4fv(jointMatrixLoc, 2, GL_FALSE, glm::value_ptr(jointM[0]));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)