【问题标题】:How to read the values from a glm::mat4如何从 glm::mat4 读取值
【发布时间】:2013-09-19 08:47:05
【问题描述】:

我有一个 glm::mat4 矩阵,我需要将这些值放入一个 double[16] 数组中。关于如何解决这个问题的任何想法??

【问题讨论】:

    标签: c++ arrays matrix glm-math


    【解决方案1】:
    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];
    

    【讨论】:

    • 谢谢!像魅力一样工作! :)
    • 直接使用pSource不安全吗?
    • 记得包含“#include
    • 有没有一种安全的方法可以反过来(将float[16] 变成mat4)?
    • @MattReyer 我相信你可以使用glm::make_mat4x4()。签出this
    【解决方案2】:

    &amp;mat[0][0] 也可以。来自 glm documentation 中的 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]);
    

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多