2010-03-30 7 views
0

나는 객체를 회전하고 번역하는 것과 같은 OpenGL에서 매우 간단한 애니메이션을 디자인하려고합니다. 빨간 책에서 GLUT의 glutIdleFunc()를 사용하면 간단한 애니메이션을 사용할 수 있다는 것을 알았습니다.OpenGl glutIdleFunc (void (* func) (void))

glutIdleFunc (...)가 함수를 1 초 만에 몇 번이나 호출합니까?

감사합니다.

답변

1

glutIdleFunc은 "이벤트가 수신되지 않을 때 계속 호출됩니다." 업데이트 속도는 실행중인 시스템에 따라 크게 달라지며 프로그램의 수명이 다할 때까지 느려지거나 심지어 인 이벤트로 호출되는 것을 멈추기 때문에 달라집니다.

그러나 일반적인 창 응용 프로그램에서는 규칙적인 동작을 제공하기에 충분히 규칙적으로 호출됩니다. 그러나 회전/평행 이동 속도를 일정하게 유지하려면 속도를 일정하게 유지하기 위해 자체 타이밍을 구현해야합니다.

+0

시스템에 CPU 바인딩 프로세스가 많고 사용자 CPU 시간이 짧은 경우 사용자 지정 루프가 업데이트 속도를 어떻게 유지할 수 있습니까? – Luca

+1

Answer는 사용자 지정 루프가 아니라 사용자 지정 타이밍을 언급합니다. CPU 시간이 충분하지 않으면 아무 도움이되지 않습니다. 위에서 언급 한 커스텀 타이밍은 과도한 CPU 시간이있을 때 일관된 드로잉 시간을 제공하기위한 것입니다 (어플리케이션이 원치 않는 스피드 업을 갖지 않도록) – Ivan

+0

@Reed, 타이밍 핸들러에'glutTimerFunc'를 사용할 수 없었습니까? http://www.opengl.org/resources/libraries/glut/spec3/node64.html –