OpenGL 기초 - 색상변경
배경색상은 한번 지정해두면 다른 값으로 바꾸지 않는 이상 계속 지속됩니다.
그래서 효율적인 코딩을 하기 위해서는
#include <gl/glut.h>
void DoDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex2f(0.0, 0.5);
glVertex2f(-0.5, -0.5);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}
void initBackColor() // 메서드형태로 변신!{glClearColor(1, 0, 0, 0);}
void main()
{
glutCreateWindow("OpenGL");
glutDisplayFunc(DoDisplay);
initBackColor();glutMainLoop();
}
이러한 형태가 바람직합니다.
메인루프는 프로그램이 종료될때까지 돌기 때문에, 한번만 지정해줘도 되는 배경색을 루프돌면서 계속 지정해 줄 필요가 없기 때문입니다.
이번에는 삼각형의 색을 바꿔보는 마술을 보여드리겠습니다.
#include <gl/glut.h>
void DoDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,0,0);
// 삼각형을 그리기 전에 색상을 빨간색으로!
glBegin(GL_TRIANGLES);
glVertex2f(0.0, 0.5);
glVertex2f(-0.5, -0.5);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}
void initBackColor()
{
glClearColor(0, 0, 0, 0);
// 배경 검정색으로 변경}
void main()
{
glutCreateWindow("OpenGL");
glutDisplayFunc(DoDisplay);
initBackColor();
glutMainLoop();
}
요렇게!