OpenGL Camera

town
-LEFT/RIGHT/UP/DOWN – x축/z축으로 카메라의 위치이동

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(cameraPos[0], cameraPos[1]+2, cameraPos[2]+25,
                  cameraPos[0], cameraPos[1], cameraPos[2],
                  0, 1, 0);
drawScene();

uptown
– LEFT/RIGHT/UP/DOWN 키와 LEFT/MIDDLE/RIGHT 마우스버튼으로 카메라이동
LEFT/RIGHT/UP/DOWN – y축/x축으로 물체를 회전시킴
LEFT MOUSEBUTTON MOTION – x축과 y축으로 물체를 회전시킴
MIDDLE MOUSEBUTTON MOTION – x축과 y축으로 물체를 이동시킴
RIGHT MOUSEBUTTON MOTION – x축과 z축으로 물체를 이동시킴

 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 glTranslatef(0, 0, -viewDistance);
 glTranslatef(viewTransX, viewTransY, 0);
 glRotatef(viewRotX, 1.0, 0.0, 0.0);
 glRotatef(viewRotY, 0.0, 1.0, 0.0);
 drawScene();

navtown
– camera class를 사용하여 x/y/x축 카메라의 위치이동과 x/y/x축 카메라의 방향이동
F1&F2 – x축 카메라 위치이동
F3&F4 – y축 카메라 위치이동
F5&F6 –  z축 카메라 위치이동
F7&F8 – x축 카메라 방향이동
F9&F10 – y축 카메라 방향이동
HOME&END –  z축 카메라 방향이동      

camera camera1(45, 1, 0.1f, 100.0f, FLY);
camera1.strafe(0.5);
camera1.fly(0.5); camera1.walk(0.5);
camera1.yaw(2.5);
camera1.pitch(2.5);
camera1.roll(2.5);
camera1.apply();
drawScene();