gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:58:18 25 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/

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