我厌倦了思考我的同伙们在每种情况下如何工作。

我听说可以通过以下代码翻转Y轴:

glScalef(1, -1, 1);


但是我应该吗?这不会破坏其他一些外部功能和照明等吗?

最佳答案

这个问题没有正确的是/否答案。调用glScalef(1, -1, 1)意味着使用左手坐标系而不是右手坐标系,这在历史上一直是例如Direct3D和RenderMan接口的选择。有人认为将正的z轴指向屏幕而不是指向屏幕更直观(这是左手坐标系的一种版本,向下的y轴是另一种)。

如果选择切换坐标系,则必须更改OpenGL中的某些标准设置才能使其正常工作。例如,您可能想调用glCullFace(GL_FRONT)(或反转发送到OpenGL的所有三角形的顺序)。

10-08 11:16