首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >2D向量或2x2矩阵在2D变换中起什么作用?

2D向量或2x2矩阵在2D变换中起什么作用?
EN

Game Development用户
提问于 2013-12-18 17:46:30
回答 1查看 356关注 0票数 1

我想弄清楚在2D渲染的转换中是否使用了vec2或mat2类,我遇到了困难。Vec2除了代表UVs,AFAIK在同质性方面也相对没有意义。

2x2矩阵呢?我想如果我们坚持剪切,比例和/或旋转的温度变量,这可能是有意义的,但我觉得我永远不会使用它。

实现起来不太费劲,但我想知道我是否遗漏了什么,或者Vec2和Mat2对于表示2D空间中的对象是否很有用。

我知道3x2或2x3矩阵是一种更有效的数据存储方式,用于仿射变换-- vec2在这种情况下有什么用处吗?

  • 或者说这是真的?对齐优化是否否定了这一优势?还是只适用于我们传输到OpenGL中的数据?
EN

回答 1

Game Development用户

发布于 2013-12-18 18:46:47

它们当然有用。

vec2非常方便,因为大多数时候您都不需要存储第三个组件。只有在实际进行仿射变换时才需要它。您甚至可以在您的mul_pointmul_vector中使用不同的mat3x3操作,以避免在许多情况下甚至需要构造vec3。在3D中,我们通常在任何地方都使用vec3,然后偶尔在必要时使用它来构造适当的vec4,这是相当罕见的。

对于矩阵,同样适用。你必须一直处理非仿射变换。没有充分的理由使用mat3x3mat2x2将在其中工作。同样,在3D中,也有很多地方不需要使用完整的mat4x4。它在3D中更有用,因为旋转要复杂得多,而且你最终想要比在2D中更频繁地使用矩阵,但你还是会使用它们。在2D中使用标量旋转值并不总是方便或有效的,因为它需要在矩阵不需要的地方调用sin/cos/tan。您可能会发现,您通常采用标量旋转,并将其转换为一个2x2矩阵,用于计算不需要平移的旋转。

票数 4
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/67569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档