gpt4 book ai didi

c++ - 在 Opengl 中使用矩阵的正确顺序是什么?

转载 作者:行者123 更新时间:2023-11-28 02:51:28 25 4
gpt4 key购买 nike

我查看了多个资源,例如 http://antongerdelan.net/teaching/3dprog1/maths_cheat_sheet.pdf

我发现我应该使用列主要排序,当我发现这个问题的答案时,困惑就来了

Why does my translation matrix needs to be transposed?

答案以列主要顺序显示了一个翻译矩阵,但之前的资源以列主要顺序显示了一个翻译矩阵,它似乎是此答案中显示的矩阵的转置。

我知道这个答案中的矩阵是正确的,因为我已经尝试过并且我的转换有效。我试图找到的是列主要比例、旋转和透视矩阵也用这种 c++ 数组样式表示法而不是第一个资源中的表示法编写。

最佳答案

据仔细阅读

Why does my translation matrix needs to be transposed?

不同之处在于,您正在查看的第一页显示的是矩阵的数学符号,其中每一列都沿垂直线排列;而您正在查看的另一个表示法是一个字符序列,类似于在您的 C++ 代码中可能出现的内容。还有许多其他差异,例如数学符号中的高方括号(不可能在 C++ 代码中准确重现,因为没有跨越多行的字符),以及数字之间没有逗号的事实数学符号。

但最主要的是,由于矩阵是以列优先顺序存储的,如果您按照条目的存储顺序初始化条目(例如使用从逗号分隔列表中初始化数组的表示法), 那么 x, y, z, 和 1 将是最后四个条目 你将在矩阵中设置。由于 C++ 总是被解析为从左到右读取的线性字符串(当您查看列表时,解析器不关心哪个数字恰好在另一个数字的正下方),如果您碰巧将 16 个值的列表格式化为4 行,每行 4 个值,列表中的最后四个值是格式最后中的值。

关于c++ - 在 Opengl 中使用矩阵的正确顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944113/

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