矩阵乘法到仅 1 个轴的镜像平移和旋转?

Posted

技术标签:

【中文标题】矩阵乘法到仅 1 个轴的镜像平移和旋转?【英文标题】:Matrix multiplication to mirror translation and rotation of only 1 axis? 【发布时间】:2015-01-28 19:50:22 【问题描述】:

我将 OpenGL 与其他一些库一起使用。这个库将提供投影矩阵,我无法修改它。我只需要提供 ModelViewMatrix。

然而,奇怪的事情发生了。只有 y 轴平移和旋转被反转。

例如,如果我在 ModelViewMatrix 中增加 x 平移,那么对象将向右移动就好了。 (正 x 方向)但在 y 轴上是相反的。我希望它走另一条路。

y 轴的旋转也反转了。它与应有的方式相反。

我无法在 ProjectionMatrix 上修复它,所以我想我可能必须将我的 ModelViewMatrix 与可以反转一个轴的东西相乘,然后再将其发送到库。你知道那件事吗?可以反转1个轴的矩阵?

【问题讨论】:

【参考方案1】:

它只是一个带有元素[1,0,0,0][0,-1,0,0][0,0,1,0][0,0,0,1]的矩阵

换句话说,第二个对角元素取反的单位矩阵。

【讨论】:

请注意,这将创建原始图像的“镜像”(使用 XZ 平面进行镜像,与使用 scale(1,-1,1) 相同)。如果模型有反转 Y 坐标,那很好,但如果只是相机在错误的一侧,则可能需要旋转 180 度。

以上是关于矩阵乘法到仅 1 个轴的镜像平移和旋转?的主要内容,如果未能解决你的问题,请参考以下文章

围绕对象旋转的矩阵乘法opengl

闫令琪GAMES101笔记 变换

着色器中的MVP矩阵乘法与否

具有位旋转技巧的快速整数矩阵乘法

浅谈矩阵变换——Matrix

浅谈矩阵变换——Matrix