Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int eyeX = 0, eyeY = 15, eyeZ = 60,
- lookAtX = 0, lookAtY = 0, lookAtZ = -20,
- upX = 0, upY = 1, upZ = 0;
- int speed = 1;
- int refreshmil = 250;
- void timer(int value){
- glutPostRedisplay();
- glutTimerFunc(refreshmil, timer, 0);
- }
- void setCamera(int eyeX, int eyeY, int eyeZ, int lookAtX, int lookAtY, int lookAtZ, int upX, int upY, int upZ){
- gluLookAt(eyeX, eyeY, eyeZ, lookAtX, lookAtY, lookAtZ, upX, upY, upZ);
- }
- void init()
- {
- GLfloat light_amb[] = { 1, 1, 1, 0 };
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_SMOOTH);
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_amb);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glShadeModel(GL_SMOOTH);
- glEnable(GL_COLOR_MATERIAL);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- void moveCamera(unsigned char key, int x, int y) {
- switch (key) {
- case 119: //W move camera forward
- lookAtZ--;
- eyeZ--;
- break;
- case 115: //S move camera back
- lookAtZ++;
- eyeZ++;
- break;
- case 97: //A move camera left
- lookAtX--;
- eyeX--;
- break;
- case 100: //D move camera right
- lookAtX++;
- eyeX++;
- break;
- case 113: //Q move camera down
- lookAtY--;
- eyeY--;
- break;
- case 101: //E move camera up
- lookAtY++;
- eyeY++;
- break;
- case 122: //tilt up
- lookAtY++;
- break;
- case 120: //tilt down
- lookAtY--;
- break;
- case 99:
- lookAtX--;
- break; //tilt left
- case 118:
- lookAtX++;
- break; //tilt right
- case 32: //press space bar to exit program
- exit(0);
- break;
- }
- }
- int rotateVal = 0;
- void display()
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLineWidth(1.0);
- glClearColor(0.678, 0.847, 0.902, 0);
- glLoadIdentity();
- glutKeyboardFunc(moveCamera);
- setCamera(eyeX, eyeY, eyeZ, lookAtX, lookAtY, lookAtZ, upX, upY, upZ);
- glFlush();
- }
- void reshape(int w, int h)
- {
- glViewport(0, 0, (GLsizei)w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glFrustum(-1.0, 1.0, -1.0, 1.0, 1, 400.0);
- glMatrixMode(GL_MODELVIEW);
- }
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(900, 700);
- glutInitWindowPosition(100, 100);
- glutCreateWindow("blank");
- init();
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glColor3f(0, 1, 0);
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutTimerFunc(10, timer, 0);
- // glutFullScreen();
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement