[英]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.