[英]OpenGL c++ - unwanted black triangle appears
我开始使用OpenGL开发一个简单的GUI应用程序。 绘制简单的背景四边形会带来很多困难,而我只是无法发现自己做错了什么或“坏了”。 这是代码的一部分,负责绘制我的背景“四元组”:
static void Draw(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.5f, 0.5f, 0.5f);
glBegin(GL_QUADS);
glVertex2f(-1.0f, -1.0f);
glVertex2f(1.0f, -1.0f);
glVertex2f(-1.0f, 1.0f);
glVertex2f(1.0f, 1.0f);
glEnd();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(600, 600);
glutCreateWindow("Pro Sound");
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glutDisplayFunc(Draw);
glutKeyboardFunc(keyPressed);
glutKeyboardUpFunc(keyUp);
glutMainLoop();
}
输出看起来像一个灰色的四边形,但是在其顶部(右侧)上有一个黑色的三角形,其中心,右上角和右下角均具有顶点。 所以我的背景看起来像是被一个三角形牙齿像素的怪物咬了。 事实是,它最近工作正常,我什至可以添加一些纹理,将其放置好等。
不要使用GL_QUADS
并更改坐标,而应保留坐标并使用GL_TRIANGLE_STRIP
。
我相当确定GL_QUADS
已弃用,无论您是否绘制四边形,使用GL_TRIANGLE_STRIP
或GL_TRIANGLE_FAN
似乎都是一个好习惯。
唯一应使用GL_QUADS
时间是在即时模式下并草拟一个性能无关紧要的小程序时。 (这可能是其中一种情况;但是为了加强和保持良好的性能,我始终使用GL_TRIANGLE_STRIP
或GL_TRIANGLE_FAN
。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.