我有一个glm::mat4矩阵,需要将其值存储在double[16]数组中。 有什么好的解决方法?
glm::mat4 pMat4; // your matrix
double dArray[16] = {0.0};
const float *pSource = (const float*)glm::value_ptr(pMat4);
for (int i = 0; i < 16; ++i)
dArray[i] = pSource[i];
&mat[0][0]
也可以工作。来自 glm 文档 中的 OpenGL 互操作性 部分:
glm::vec4 v(0.0f);
glm::mat4 m(1.0f);
...
glUniform3fv(uniVec, 1, glm::value_ptr(&v[0]));
glUniformMatrix4fv(uniMat, 1, GL_FALSE, &m[0][0]);
float[16]
转换成mat4
)? - winduptoyglm::make_mat4x4()
。查看这个链接。 - Samuel Li