如何从 glm::mat4 读取值

How to read the values from a glm::mat4

本文关键字:mat4 读取 glm      更新时间:2023-10-16

我有一个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]);