我正在尝试使用GL_QUADS渲染一个正方形,但是每次渲染时都有一个三角形缺失的形式

这是我的代码:

gl.glPushMatrix();
gl.glBegin(GL.GL_QUADS);
gl.glVertex3d(pts2d.get(0).x, extra[0],pts2d.get(0).y);
gl.glVertex3d(pts2d.get(1).x,extra[0],pts2d.get(1).y);
gl.glVertex3d(pts2d.get(0).x, portalHeight,pts2d.get(0).y);
gl.glVertex3d(pts2d.get(1).x,portalHeight,pts2d.get(1).y);
gl.glEnd();
gl.glPopMatrix();


我正在使用JOGL,这些点是创建正方形的正确点,我只是不知道为什么要切出一个三角形。

最佳答案

请注意,OpenGL的四边形排序与等效的三角形条纹不同。这就是我的意思。

按以下顺序指定构成一个三角形的四个三角形的四个顶点:

0 2
1 3


按以下顺序指定四边形:

0 3
1 2


看到不同?围绕四边形的面沿逆时针方向(或顺时针方向,取决于您的缠绕顺序)。它不是从上到下,从左到右的。

10-08 06:41