【发布时间】:2016-12-02 23:54:50
【问题描述】:
我不能在我的 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
我不完全理解为什么它给了我这个错误信息,而且像往常一样,谷歌搜索没有给我任何好的结果。为什么它要我将矩阵转换为浮点数?
【问题讨论】:
-
矩阵不是 vec4,你应该使用 glUniformMatrix4fv 和 glm::value_ptr。
-
不是vec4,是mat4。
-
那你为什么用glUniform4f?它设置 vec4 的四个值。
-
那我应该用什么?
-
正如我所说,带有
value参数的glUniformMatrix4fv 是glm::value_ptr(mat)
标签: c++ opengl matrix glsl glm-math