gpt4 book ai didi

opengl - 在 GLSL 中对矩阵使用预乘顺序有什么缺点吗?

转载 作者:行者123 更新时间:2023-12-02 04:59:18 26 4
gpt4 key购买 nike

OpenGL 中的旧矩阵堆栈规定矩阵乘法顺序必须是后乘法。现代 OpenGL 将这些矩阵运算推迟到着色器,我们现在可以自由选择使用 operator*(vec4,mat4) 而不是 operator*(mat4,vec4) .我碰巧更喜欢预乘,因为我发现它使代码更具可读性。例如。通过后乘法我们有

mat4 mvp = vp * m;

有了预乘就变成了

mat4 mvp = m * vp;

这对我来说更有意义。

无论如何,我的问题是:这有什么缺点吗?除了 OpenGL 人们不习惯它?性能似乎没有任何变化。

最佳答案

The old matrix stack in OpenGL dictated that the matrix multiplication order had to be post-multiplication.

不,它没有。假设行主矩阵和行向量,固定函数矩阵堆栈与左结合乘法(例如 glRotate::M = R · M)一样工作得很好,即编写所有转置的内容。事实上,这在数学上是零差异,完全一样。

There doesn't seem to be any change in performance.

这不是性能问题,而是方便性问题。大多数数学家(计算机科学家、物理学家、数学家)习惯于使用列向量并从右到左阅读表达式。这是常见的表示法,这就是为什么这样做的原因。

关于opengl - 在 GLSL 中对矩阵使用预乘顺序有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com