OpenGL:选择哪个多面镜是向前的?

时间:2010-09-18 18:48:59

标签: java opengl graphics jogl

我是OpenGL的新手。我正在使用Java / JOGL。

我在使用多边形面时遇到了困难。我希望能够控制哪一侧是正面还是背面。我一直在研究这个documentation

我认为在我的display()方法中,这行代码会绘制所有多边形面,但它没有效果:

gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GLU.GLU_LINE);

使用它,我可以翻转哪些边被渲染:

gl.glFrontFace(GL.GL_CW);

但是我的一半多边形面向一个方向,一半面向另一个方向,所以只有一半被渲染。

我尝试使用gl.glNormal3f()设置正常,希望这与“前面”有关,但它没有效果。

我应该在这做什么?

感谢。

2 个答案:

答案 0 :(得分:4)

前面不是法线定义的,而是顶点的顺序。从前面看多边形时,如果按照创建它们的顺序跟踪顶点,则最终会顺时针或逆时针跟踪多边形。如果从另一侧看多边形,则会以相反的方向跟踪它。

glFrontFace设置哪个方向被视为前方。当从应该作为前方的方向查看时,确保所有顶点都以相同的顺序定义。

答案 1 :(得分:2)

也许你已经启用了剔除。如果您使用

禁用它
glDisable(GL_CULL_FACE);

那么你的所有面孔都应该被光栅化,但最好确保你的多边形不在里面。