GLM:如何创建 9 列和 3 行的矩阵

GLM: How to create a matrix of 9 columns and 3 rows

我只知道一种方法,就是glm::mat4 matrix

我什至尝试了 float matrix[9][3] 但没有用,我需要它与 glm::vec3

相乘

如何创建?

您可以使用 3x3 子矩阵进行计算,并将输出组合成最终结果。有两个选项:

  1. 9 行

    a a a       u'
    a a a       u'
    a a a       u'
    b b b   u   v'
    b b b * u = v'
    b b b   u   v'
    c c c       w'
    c c c       w'
    c c c       w'
    

    这真的很简单:

    u' = a*u
    v' = b*u
    w' = c*u
    
  2. 9 列

                        u
                        u
                        u
    a a a b b b c c c   v   u' 
    a a a b b b c c c * v = u'
    a a a b b b c c c   v   u'
                        w
                        w
                        w
    

    这更复杂但不是很多:

    u.x' = (a*u).x + (b*v).x + (c*w).x
    u.y' = (a*u).y + (b*v).y + (c*w).y
    u.z' = (a*u).z + (b*v).z + (c*w).z
    

这是在 GLSL 中扩展维度的常用方法,例如用于以下目的: