我正在尝试使用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();
结果:
此外,代码比那要大得多。我只是把绘制形状的代码。
答案 0 :(得分:5)
操作顺序在OpenGL中很重要。此代码如下:
放下一支“铅笔”(我建议你用一支真正的铅笔在一张实际的纸上做这件事,同时阅读这篇文章,按照说明书,放下铅笔并做下面的动作而不抬起它) - 画画四边形
GL11.glBegin(GL11.GL_QUADS);
第一个角落左下方
GL11.glVertex2i(0, 0);
右下角的第二个角落
GL11.glVertex2i(800, 0);
左上角
GL11.glVertex2i(0, 600);
右上角第四个角落
GL11.glVertex2i(800, 600);
用铅笔返回到第一点,完成四边形。
GL11.glEnd();
OpenGL希望您提供具有一致缠绕的凸几何体,即顶点以顺时针或逆时针方向绘制。您在中间切换方向,这使您定义的形状为非凸。
我强烈建议您保持逆时针方向缠绕:
这也是你用铅笔绘制四边形的方法。
答案 1 :(得分:4)
尝试交换这两个:
GL11.glVertex2i(0, 600);
GL11.glVertex2i(800, 600);
所以你有这个:
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2i(0, 0);
GL11.glVertex2i(800, 0);
GL11.glVertex2i(800, 600);
GL11.glVertex2i(0, 600);
GL11.glEnd();
因此,在你的代码中,四边形中的顶点顺序是:左上角,右上角,左下角,右下角。这不是凸形。 正确的顺序是: 左上角,右上角,右下角,左下角。
答案 2 :(得分:0)
修正了它。我画了左上角,右上角,右下角,左下角。不是左上角,右上角,左下角,右下角。