非方阵在计算机图形学中如何使用?

发布于 2024-11-19 07:10:17 字数 246 浏览 3 评论 0原文

通常,方阵用于对各个点进行变换。您有一个可转换为 1x4 或 4x1 矩阵的 4D 向量,该向量在任意一侧乘以 4x4 矩阵以创建 4x1 或 1x4 矩阵。这就是你的转变点。

但非方阵有什么用呢?如果将 3x4 矩阵乘以 4x1 向量矩阵,最终会得到 3x1 矩阵;这比你一开始的维度少了一个维度。更不用说 3x4 矩阵不具备 4x4 矩阵的优良特性,例如与其他 4x4 矩阵相乘并仍保留相同维度的能力。

GLSL 支持方阵和非方阵。为什么?

Normally, square matrices are used to transform various points. You have a 4D vector which transforms into a 1x4 or 4x1 matrix, which is multiplied by a 4x4 matrix on whichever side works to create a 4x1 or 1x4 matrix. This is your transformed point.

But what are non-square matrices used for? If you multiply a 3x4 matrix by a 4x1 vector matrix, you end up with a 3x1 matrix; that's one less dimension than what you started with. Not to mention that a 3x4 matrix doesn't have the nice properties of a 4x4 matrix such as the ability to multiply by other 4x4 matrices and still retain the same dimensions.

GLSL supports both square matrices and non-square matrices. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风吹过旳痕迹 2024-11-26 07:10:17

例如,您可以使用 4x3 矩阵进行蒙皮中的骨骼变换。这些变换是仿射变换,不包括投影,因此您不需要最后一列。

1x4 向量与 4x3 矩阵相乘的结果是 1x3 向量,在这种特殊情况下,您不需要将其与矩阵相乘。

将 4x3 矩阵而不是 4x4 传递给 GPU 可以节省四分之一的带宽。

You can use 4x3 matrices for, for example, skeleton bone transformations in skinning. These transformations are affine and don't include projection, so you don't need the last column.

The result of the multiplication of 1x4 vector and 4x3 matrix is a 1x3 vector, and in this particular case you don't need to multiply it with a matrix.

Passing 4x3 matrices to GPU instead of 4x4 will save you a quarter of bandwidth.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文