我只知道一种glm::mat4 matrix
我什至尝试了float matrix[9][3]也不起作用,我需要将它与glm::vec3相乘

如何创建?

最佳答案

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

  • 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
    
  • 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中扩展维度的常用方法:
  • 4D rendering
  • 4D rotations
  • 关于c++ - GLM:如何创建9列3行的矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58872083/

    10-14 08:01