저는 공간을 탐색 할 수있는 3D 객체를 그리는 Android에서 openGL ES 1.1에 의해 간단한 프로그램을 작성했습니다.OpenGL - 이전 변형을 기반으로 한 변환과 혼동했습니다.
3D 게임에서 1 인칭 카메라 모드처럼 왼쪽, 오른쪽, 안쪽으로 이동하고 왼쪽, 오른쪽, 위, 아래로 회전하고 싶습니다. onDrawFrame(GL10 gl)
에 여기에 내 그림의 일부 (이것은 내가 카메라/눈 자체를 회전 할 의미) :
gl.glLoadIdentity();
gl.glRotatef(lfRt, 0.0f, 1.0f, 0.0f);
gl.glRotatef(upDn, 1.0f, 0.0f, 0.0f);
gl.glTranslatef(X, 0.0f, 0.0f);
gl.glTranslatef(0.0f, Y, 0.0f);
gl.glTranslatef(0.0f, 0.0f, Z);
lfRt 및 기타 변수는 우리가해야하는 시점을 결정합니다. (더 많은 것을 설명하기 위해 모든 moveIn() 호출에는 z가 상수로 더 해지고 다른 일부는 같은 논리가 사용됩니다).
내 혼란이 여기에 있습니다. 번역을 먼저 넣으면 메서드가 잘 작동하지만 (왼쪽, 등) 회전은 잘못되었습니다. (전 세계가 원점을 중심으로 회전 함) 반면에 회전을 먼저 넣으면 카메라는 잘 회전하지만 이동 방법이 잘못됩니다. 예를 들어 moveIn()은 항상 같은 행/축에서 이동합니다. z 축으로 이동하지 않고 이동하고 싶습니다.
어떻게해야합니까?
나를 도와 주셔서 감사합니다. –