【发布时间】:2017-03-13 18:41:31
【问题描述】:
据我了解,OpenGL 使用右手坐标系,至少在剪辑空间中,它的工作方式如下:
- X 点向右
- Y 向上
- Z 点进入屏幕
这意味着,无需对用于变换的所有矩阵进行任何修改,世界空间坐标的工作方式如下:
- X-Z 平面是水平的
- X-Y 和 Z-Y 平面是垂直的
如果我想改变它以使 Z 轴指向上方怎么办?我怎么能这样做呢?我考虑过将所有矩阵乘以一个旋转矩阵,该矩阵仅将所有坐标移动 90 度,或者一旦我将数据发送到 GPU,我可以更改向量的 Y 和 Z 分量,但这些看起来更像是解决方法而不是实际解决方案,并且如果对场景中的每个网格进行处理,它们也可能会影响性能。有没有标准的方法来做到这一点?我是不是搞错了?
【问题讨论】:
-
您可以在其上乘以一个 Rotationmatrix。
-
你试过gamedev.stackexchange.com/questions/28434/…吗?同样是迂腐的,+Z 在右手系统中指向屏幕外。尽管 OpenGL 在 NDC 空间中是左撇子(与您的要点相匹配)。
-
@ssell 谢谢你的链接,这正是我想要的。
标签: opengl