C ++ / OpenGL glm不能在着色器中将矩阵插入均匀

时间:2016-12-02 23:54:50

标签: c++ opengl matrix glsl glm-math

我无法在OpenGL着色器中使用我的矩阵;这给了我一个错误:

glUniform4f(matLocation, mat[0], mat[1], mat[2], mat[3]); // glm mat4

no suitable conversion function from "glm::tvec4<float, glm::highp>" to "GLfloat" exists

我不完全理解为什么它给我这个错误信息,和往常一样,谷歌搜索并没有给我任何好结果。为什么要我将矩阵转换成浮点数?

1 个答案:

答案 0 :(得分:1)

glUniform4f仅更新带有四个浮点值的vec4,因此您需要glUniformMatrix4fv,它指向一个由mm提供的16个浮点值数组的指针glm::value_ptr

mat[n]仅产生n列,vec4;因此编译错误。

相关问题