2010-09-18 87 views
0

我是OpenGL的新手。我正在使用Java/JOGL。OpenGL:選擇哪個多面朝前?

我很難與多邊形的面孔。我希望能夠控制哪一方是前方或後方。我一直在努力通過documentation

我想這行代碼,在我display()方法,就可以把所有多面繪製,但它沒有任何效果:

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

利用這一點,我可以翻轉的哪一方面得到呈現:

gl.glFrontFace(GL.GL_CW); 

但是我的一半多面朝一個方向,一半面對着另一個面,所以只有一半面被渲染。

我試着用gl.glNormal3f()來設置正常值,希望這與那個「前端」有關,但它沒有效果。

我應該在這裏做什麼?

謝謝。

回答

4

前面不是由法線定義的,而是頂點的順序。從前面查看多邊形時,如果按照創建順序跟隨頂點,則最終將順時針或逆時針跟蹤多邊形。如果從另一側看多邊形,則會沿相反的方向追蹤它。

glFrontFace設置哪個方向被認爲是前方。確保所有頂點在從應該是前面的方向觀察時都按相同的順序定義。

2

也許你已啓用剔除功能。如果您將其禁用,則可以使用

glDisable(GL_CULL_FACE); 

然後,您的所有面孔都應該被柵格化,但最好確保您的多邊形不在裏面。