OpenGL 中的旧矩阵堆栈规定矩阵乘法顺序必须是后乘法。现代 OpenGL 将这些矩阵运算推迟到着色器,我们现在可以自由选择使用operator*(vec4,mat4)
而不是operator*(mat4,vec4)
. 我碰巧更喜欢预乘法,因为我发现它使代码更具可读性。例如,我们有后乘法
mat4 mvp = vp * m;
而通过预乘它变成
mat4 mvp = m * vp;
这对我来说更有意义。
无论如何,我的问题是:这有什么缺点吗?OpenGL以外的人不习惯吗?性能似乎没有任何变化。