我正在使用glScalef (-1.0, 1.0, 1.0)
翻转我的openGL图像轴。然而,这完全弄乱了物体和颜色的渲染。我尝试过以下几点无济于事:
glEnable(GL_NORMALIZE);
glEnable (GL_DEPTH_TEST) ;
glEnable(GL_COLOR_MATERIAL);
glCullFace(GL_BACK);
如果我翻转x和y - glScalef (-1.0, -1.0, 1.0)
那么颜色很好,但我不想翻转这两个尺寸。翻转x和z不会修复颜色。
有什么想法吗?
答案 0 :(得分:1)
通过执行此操作,您更改了坐标空间的灵活性。实际上,当光栅化三角形时,前面会变成背面,因为卷绕方向是相反的。
您应该了解光栅化器如何确定多边形的正面/背面。它使用顶点的后投影位置并测试卷绕方向。您在后投影坐标系中翻转了1轴,这改变了惯性(更正式地说,它是chirality)。这会产生镜像,顶点的缠绕是向后的。
您可以使用glFrontFace (GL_CW)
来解决这个问题,或者只是手动用另一种方式缠绕顶点。