我只知道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中扩展维度的常用方法: