OpenGL 2D形状问题

1 java opengl lwjgl

我正在尝试用LWJGL中的OpenGL制作形状,但每次我这样做,都会使这个三角形凹陷.

代码:

//The Window Is 800 Wide And 600 Tall
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2i(0, 0);
GL11.glVertex2i(800, 0);
GL11.glVertex2i(0, 600);
GL11.glVertex2i(800, 600);
GL11.glEnd();
Run Code Online (Sandbox Code Playgroud)

结果:

OpenGL失败

此外,代码比那要大得多.我只是把绘制形状的代码.

dat*_*olf 5

操作顺序在OpenGL中很重要.此代码如下:

放下一支"铅笔"(我建议你用一支真正的铅笔在一张实际纸上做这件事,同时阅读本文,即按照说明书,放下铅笔并做下面的动作而不抬起它) - 画一个四边形

GL11.glBegin(GL11.GL_QUADS);
Run Code Online (Sandbox Code Playgroud)

第一个角落左下方

GL11.glVertex2i(0, 0);
Run Code Online (Sandbox Code Playgroud)

第二个角落在右下方

GL11.glVertex2i(800, 0);
Run Code Online (Sandbox Code Playgroud)

左上角

GL11.glVertex2i(0, 600);
Run Code Online (Sandbox Code Playgroud)

第四个角落在右上方

GL11.glVertex2i(800, 600);
Run Code Online (Sandbox Code Playgroud)

用铅笔返回第一点完成四边形.

GL11.glEnd();
Run Code Online (Sandbox Code Playgroud)

OpenGL希望您提供具有一致缠绕的凸几何体,即顶点以顺时针或逆时针方向绘制.您在中间切换方向,这使您定义的形状非凸.

我强烈建议你保持逆时针绕组:

  1. 左下方
  2. 右下角
  3. 右上
  4. 左上方

这也是你用铅笔绘制四边形的方法.