최근에 완료 한 OpenGL 프로그램에 "카메라"가 있습니다. 그러나 회전하고 다시 움직일 때마다 x, y 및 z 각이 변경된다는 것을 알았습니다. 예를 들어 "w"키를 누르면 "z"축을 따라 앞으로 이동합니다. 그런 다음 카메라를 90도 회전하면 "W"키를 누르면 실제로 "x"축을 따라 오른쪽으로 이동합니다. 왜 이런 일이 일어나는지 이해가됩니다. 왜 그런 일이 일어 났는지 궁금합니다.OpenGL 1 인칭 카메라 위치 문제
private void camera() {
glRotatef(xrot, 1.0f, 0.0f, 0.0f);
glRotatef(yrot, 0.0f, 1.0f, 0.0f);
}
키보드 기능 : 다음은 회전 기능의
if (Keyboard.isKeyDown(Keyboard.KEY_D)) {
xpos -= 0.035 * delta;
}
if (Keyboard.isKeyDown(Keyboard.KEY_A)) {
xpos += 0.035 * delta;
}
if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
zpos += 0.03f * delta;
}
if (Keyboard.isKeyDown(Keyboard.KEY_S)) {
zpos -= 0.035 * delta;
}
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
xrot += 0.035;
if (xrot > 360) {
xrot -= 360;
}
}
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
xrot -= 0.035;
if (xrot > 360) {
xrot += 360;
}
}
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
yrot += 0.035;
if (xrot > 360) {
xrot -= 360;
}
}
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
yrot -= 0.035;
if (xrot > 360) {
xrot += 360;
}
}
그리고 내 기능 번역 :이 문제를 해결하는 방법에 대한
glTranslated(xpos, ypos, zpos - 30);
어떤 아이디어?