728x90
물체들을 프레임 버퍼에 그려내는 과정에서 미완성인 상태의 결과를 디스플레이 컨트롤러가 읽어서 화면에 그대로 출력하게 된다면 화면 상에는 그림이 이상하게 나타난다. 이를 해결하기 위한 방법이 프레임 버퍼를 2개 두고서 그리는 버퍼와 읽어가는 버퍼를 다르게 처리하고 두 버퍼를 교환(Swap)하는 방법을 적용하면 된다.
프론트 버퍼의 내용을 화면에 출력할 때 백 버퍼에 다음 그림을 그려주고 백 버퍼의 내용이 화면에 출력될 때는 프론트 버퍼에 그림을 그려주는 방식
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); 사용
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <stdio.h>
#include <windows.h>
#include <math.h>
using namespace std;
void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.5, 0.5, 0.0);
glVertex3f(-0.5, 0.5, 0.0);
glVertex3f(-0.5, -0.5, 0.0);
glVertex3f(0.5, -0.5, 0.0);
glEnd();
glutSwapBuffers(); //필수
}
int main(int argc, char* argv[])
{
glutInit_ATEXIT_HACK(&argc, argv);
glutInitWindowSize(500, 500); // 윈도우 크기
glutInitWindowPosition(500, 100); // (500,100) 위치에 윈도우
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutCreateWindow_ATEXIT_HACK("OpenGL Example");
glutDisplayFunc(MyDisplay);
glutMainLoop();
return 0;
}
참고 블로그
'Language > C++ & openGL' 카테고리의 다른 글
openGL Retained mode(보류모드) / 디스플레이 리스트 (1) | 2020.05.06 |
---|---|
openGL keyboad, timer / 키보드 콜백과 타이머 (0) | 2020.05.03 |
외부라이브러리 추가하기, 헤더파일 추가하기 (0) | 2020.04.28 |
OpenGL 키보드 콜백 회전 회오리 (0) | 2020.04.25 |
OpenGL 그래픽스 , 그리기 (0) | 2020.04.25 |
댓글