OpenGL 不会使用左上角坐标进行渲染

OpenGL won't render with top left coordinates

提问人:ibe 提问时间:11/21/2015 更新时间:11/21/2015 访问量:172

问:

我用glOrtho()设置了我的投影矩阵,如下所示:

glOrtho(-Application.HALF_WIDTH, Application.HALF_WIDTH, -Application.HALF_HEIGHT, Application.HALF_HEIGHT, 1, -1);

因此,当我在原点 (0; 0) 处绘制某些内容时,opengl 会将其绘制在屏幕中央。好。但是现在我想翻转 Y 坐标,所以我把它改成这样:

glOrtho(-Application.HALF_WIDTH, Application.HALF_WIDTH, Application.HALF_HEIGHT, -Application.HALF_HEIGHT, 1, -1);

当我尝试在 (0; 0) (或任何位置)绘制时,它会出现黑屏。

什么原因可能导致此问题? P.S. 我正在使用 LWJGL

OpenGL 坐标 lwjgl slick2d

评论

2赞 BDL 11/21/2015
如果启用了背面剔除,请注意,反转 y 轴会改变绕组顺序。
0赞 ibe 11/21/2015
哦,确实如此。设置 glFontFace(GL_CCW) 解决了它。谢谢!

答:

4赞 BDL 11/21/2015 #1

当改变 y 轴的方向时,基元的绕组顺序也会改变。因此,如果启用了背面剔除,则必须通过将其设置为

glFontFace(GL_CCW)