All Articles

OpenGL 강좌 _ 4강. 2D Animation

Image

* 각각의 강의에서 쓰이는 메서드의 내용은 조금씩 달라질 수 있기 때문에 마지막 전체코드를 확인하여주시기 바랍니다.

1. 강의 설명

OpenGL 강좌 : 2강. 2D Programming 코드를 기본으로 다음 강의를 시작하겠습니다.

이번에 배울 내용은 Animation에 대한 내용으로 glutTimerFunc이 돌아가는 예시를 설명합니다.

2. 전역 변수 추가

static float degree;
  • degree는 현재 도형의 angle 값을 나타내며, 라디안(Radian) 값이 아닌 °(Degree)를 나타냅니다.

3. 메서드 추가

void timer(int value)
{
	degree += 2.0;
	if (degree >= 360.0)
		degree -= 360.0;

	glutTimerFunc(1000 / 30, timer, 1);
	glutPostRedisplay();
}
  • timer(임의변경가능) 메서드는 glutTimerFunc의 두번째 인자로 들어가는 메서드입니다.
  • glutTimerFuncmaintimer에서 각각 호출되어 1000 밀리세컨드 / 30 ( 1초에 30번 갱신 : 30 fps )로 작동합니다.

4. main 메서드

// Main program entry point
int main(int argc, char* argv[])
{
	glutInit(&argc, argv); // Initialize GLUT Library
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Set Display Mode 
	glutInitWindowSize(600, 600); // width 600, height 600
	glutCreateWindow("GL3"); // Create new Window App "GL3"
	glutDisplayFunc(RenderScene);
	glutReshapeFunc(ChangeSize);

	glutTimerFunc(1000 / 30, timer, 1);

	Init();

	glutMainLoop(); // GLUT, GL Routine

	return 0;
}

5. 결과물

Image

6. 전체코드 확인