Upgrade to Pro — share decks privately, control downloads, hide ads and more …

include.pdf

somchith
February 27, 2013
110

 include.pdf

somchith

February 27, 2013
Tweet

Transcript

  1. 1. ຄວາມເປັນມາ ສະບັບທໍາອິດຂອງ OpenGL, ສະບັບ 1.0, ຖຶກປ່ອຍອອກມາເມື່ອເດືອນມັງກອນປີ 1992 ໂດຍ Mark

    Segal ແລະ Kurt Akeley. ນັບຕັ້ງແຕ່ນັ້ນມາ, OpenGL ໄດ້ເປັນບາງໂອກາດຂະຫຍາຍ ດ້ວຍການປ່ອຍມີລຸ້ນໃຫມ່ຂອງສະເພາະ OpenGLເປີດຮູບພາບ ແມ່ນລະຫວ່າງພາສາ, API ຫຼາຍເວທີສໍາລັບ rendering ຮູບພາບຄອມພິວເຕີ 2D 3D ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງ
  2. 2. ຄວາມໝາຍຂອງ OpenGL  Application Programming Interface (API) ສໍາລັບຄວບຄຸມGPU 

    ຜູ້ໃຊ້OpenGL ສ້າງຮູບຮ່າງວັດຖຸ(ເມັດ ເສັ້ນ ແລະຮູບຫຼາຍຫຼຽມ) ຜ່ານທາງ OpenGL  OpenGL ຈະເຮັດໜ້າທີ່ສ້າງພາບໃສ່ frame buffer  ການໃຊ້ໂປຼແກຼມທີ່ມີການໂຕ້ຕອບທັນທີ (interactive) ແ ລະ ໂປຼແກຼມທີ່ມີພາບເຄື່ອນເໜັງ #include <glut.h> float angle=0; float translate =-2; GLint xRaster = -2, yRaster=0.0; void init(void) { glClearColor(0.0, 1.0, 0.0, 0.0); glMatrixMode (GL_PROJECTION); gluOrtho2D(-6,6,-6,6); } void Animation(void) { if(angle>=0 && angle <=360) angle = angle+1; else angle = 0; if(translate >=0 && translate <=0 ) translate = translate + 0.6; else translate = -2.0; glutPostRedisplay(); } void display (void) { glClear (GL_COLOR_BUFFER_BIT); glPushMatrix();
  3. glRotatef(angle,0.0,angle,0.0); glTranslatef(0.0,translate,0.0); glRasterPos2i(xRaster,yRaster); glutWireTeapot(0.2); glutWireTeapot(0.3); glutWireTeapot(0.4); glutWireTeapot(0.5); glutWireTeapot(0.6); glutWireTeapot(0.7); glRasterPos2i(xRaster,yRaster);

    glPopMatrix(); glPopMatrix(); glutSwapBuffers(); glFlush(); } void specialkey (int key, int x, int y) { switch (key) { case GLUT_KEY_F1: glColor3f(1.0, 0.0, 0.0);// Set color to red glutPostRedisplay(); break; case GLUT_KEY_F2: glColor3f(0.0, 1.0, 0.0);// Set color to green glutPostRedisplay(); break; case GLUT_KEY_F3: glColor3f(0.0, 0.0, 1.0);// Set color to blue glutPostRedisplay(); break; case GLUT_KEY_F4: glColor3f(1.0, 1.0, 0.0);// Set color to yellow glutPostRedisplay(); break; case GLUT_KEY_F5: glColor3f(1.0, 0.0, 1.0);// Set color to magenta glutPostRedisplay();
  4. break; case GLUT_KEY_F6: glColor3f(0.0, 1.0, 1.0);// Set color to cyan

    glutPostRedisplay(); break; default: break; } } void main (int argc, char **argv) { glutInit (&argc, argv); glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize(300, 300); glutInitWindowPosition(100, 100); glutCreateWindow ("Animation"); glutIdleFunc(Animation); glutDisplayFunc(display); glutSpecialFunc (specialkey); init(); glutMainLoop (); }