import sys, string, time, os from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * from OBJFile import * startDir = os.getcwd() viewRotY = 0 viewRotX = 0 car = OBJFile("HumVLow.obj") frame = 0 starttime = time.time() def draw(): glClearColor(0, 0.5, 1, 0) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45, 1, 0.1, 100) glMatrixMode(GL_MODELVIEW) glLoadIdentity() glTranslatef(0, 0, -5) glRotatef(viewRotX, 1.0, 0.0, 0.0) glRotatef(viewRotY, 0.0, 1.0, 0.0) car.draw() glutSwapBuffers() global frame, starttime frame = frame + 1 if frame == 100: print 100.0/(time.time()-starttime), 'fps' starttime = time.time() frame = 0 def keyboard(key, x, y): if key == chr(27): sys.exit(0) def specialkey(key,x,y): global viewRotX, viewRotY if key == GLUT_KEY_LEFT: viewRotY = viewRotY + 3 elif key == GLUT_KEY_RIGHT: viewRotY = viewRotY - 3 elif key == GLUT_KEY_UP: viewRotX = viewRotX + 3 elif key == GLUT_KEY_DOWN: viewRotX = viewRotX - 3 glutInit([]) glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH) glutInitWindowSize(400,400) glutCreateWindow(sys.argv[0]) glutDisplayFunc(draw) glutKeyboardFunc(keyboard) glutSpecialFunc(specialkey) glutIdleFunc(glutPostRedisplay) glEnable(GL_DEPTH_TEST) glEnable(GL_LIGHTING) glEnable(GL_LIGHT0) glLightfv(GL_LIGHT0, GL_POSITION, [1, 1, 1, 0]) os.chdir(startDir) glutMainLoop()