Open GL Animation
-
Upload
kiran-munir -
Category
Education
-
view
4.394 -
download
1
description
Transcript of Open GL Animation
Presented By:Kiran Munir08-SE-59
• Animation is the rapid display of a sequence of images of 2-D or 3-D artwork or model positions in order to create an illusion of movement.
• "Animation" would be the technique of giving "soul" to objects and drawings
• For animation • We can explicitly force the display
callback to be invoked by issuing the command glutPostRedisplay().
• For automated simulation• We need a mechanism for the window to
be continually updated automatically. • Idle Callback (glutIdleFunc()) • Timer Callback (glutTimerFunc()).
• The Idle Callback specifies a function that is invoked whenever the system is not handling any other callbacks or events.
• Timer Callback specifies a function that is invoked after a specified time period.
A Simple Animation
• float X=0.0;• float deltaX=0.01;
Void draw(void){ glClear (GL_COLOR_BUFFER_BIT); glBegin (GL_LINES); glVertex3f (X, 0.25,0.0); glVertex3f (1.0-X, 0.75,0.0); glEnd ( ); glFlush ();
X+=deltaX;if(X>=1.0 || X<=0.0){
deltaX=-deltaX;}glutPostRedisplay(); }
• Single Buffer Rendering• Hardware Dependence• Inconsistent speed
A Smooth Animation
• Now to compile and execute we see a smooth animated line segment
• Double buffering is insignificant In this case, but is important in drawing complex scenes.
• No real solution• Make faster computers slow• Important for consistency
• Animation Delay• Select the minimal hardware
configuration• Set a time delay for animation
• Glut Timed Callback• GlutTimerFunc();
• glutTimerFunc(time,function,arg)• This causes function() to be called
after time milliseconds with arg as an argument to function()
void Timer(int unused){
glutPostRedisplay();glutTimerFunc(30,Timer,0);
}
• At the end of 30 milliseconds the function timer is called again and dispatches the redisplay and timer messages.
• To compile and execute the program we see a much smoother animation.
• Simultaneously running applications can slow down your animation.
http://xoax.net/http://nehe.gamedev.net