OpenGL을 사용하여 간단한 GUI 응용 프로그램에서 작업하기 시작했습니다. 간단한 배경 쿼드 그리기는 많은 어려움을 낳고 나는 내가 잘못하고있는 것이 무엇인지 '고장났다'는 것을 발견 할 수 없습니다. 여기 내 배경 '쿼드'를 그리기에 대한 책임이 코드의 일부는 다음과 같습니다OpenGL C++ - 원치 않는 검은 색 삼각형이 표시됩니다.
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();
}
출력은 회색 쿼드처럼 보이지만, (오른쪽)의 상단에 정점을 가진 검은 색 삼각형이 센터, 오른쪽 위 코너 및 오른쪽 하단 코너. 그래서 내 배경은 삼각형 이빨 픽셀 괴물에 물린 것처럼 보입니다. 문제는 최근에 제대로 작동했습니다. 텍스처를 추가하고 위치를 잘 잡을 수도 있습니다.
너무 간단하면서도 계몽. 내 구세주 께 감사드립니다. 경례! – Bizarre
그는 GL_QUADS를 사용하여 두 개의 삼각형이 아닌 쿼드를 그립니다. –
모든 현대 GPU는 삼각형 만 사용하므로 드라이버에 의해 두 삼각형으로 삼각 분할됩니다. GPU가 쿼드로 작업한다면 그는 본 아티팩트를 보지 못했을 것입니다. – ssell