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 子矩阵进行计算,并将输出组合成最终结果。有两个选项:
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 中扩展维度的常用方法,例如用于以下目的:
我只知道一种方法,就是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 中扩展维度的常用方法,例如用于以下目的: