OpenGL:终极坐标系混淆解决方案?

时间:2010-01-18 13:12:48

标签: c++ opengl coordinate-systems

我已经厌倦了想我的坐标在每种情况下是如何工作的。

我听说我可以用这段代码翻转Y轴:

glScalef(1, -1, 1);

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

3 个答案:

答案 0 :(得分:5)

我可能会说,习惯于opengl默认设置是摆脱困惑的最快方式。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

我可能错了,但它可能会让你的模特从里到外。您可能还需要交换顶点绕组顺序。但是,如果使用双面多边形,则无需担心。

相关问题