OpenGL ES의 새로운 기능. 회전하고 번역 한 후 큐브의 월드 좌표를 계산하는 데 도움이 될 수 있습니까? 예 :
첫 번째 회전 큐브 :
gl.glRotatef (90, 1, 0, 0);
자신의 위치를 변경하는 것보다
gl.glTranslatef (10, 0, 0);
어떻게 "새로운"세계 좌표를 계산할 수 있습니까? glGetFloatv (GL_MODELVIEW_MATRIX, matrix)에 대해 읽었지만 이해하지 못했습니다. 어쩌면 누군가가 샘플 코드를 제공 할 수 있습니다.
편집 :
해결책을 찾았습니다. Android 코드
float[] matrix = new float[] {
답변 해 주셔서 감사합니다.glRotatef 및 glTranslatef 이후의 OpenGL 위치
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
};
Matrix.rotateM(matrix, 0, rx, 1, 0, 0);
Matrix.rotateM(matrix, 0, ry, 0, 1, 0);
Matrix.rotateM(matrix, 0, rz, 0, 0, 1);
Matrix.translateM(matrix, 0, x, y, z);
x = matrix[12];
y = matrix[13];
z = matrix[14];
1
A
답변
0
질문의 나머지 부분에서 원하는 부분에 대한 답을 얻을 수 있지만 (Java 오류가 발생하면 용서해주십시오. 저는 실제로 Android 사용자가 아닙니다) :
float[] matrix = new float[16];
gl.glGetFloatv(GL_MODELVIEW_MATRIX, matrix);
// check out matrix[12], matrix[13] and matrix[14] now for the world location
// that (0, 0, 0) [, 1)] would be mapped to
getFloatv는 modelview 매트릭스의 현재 값을 지정된 float 버퍼로 다시 읽어들입니다. OpenGL 4x4 행렬에서는 인덱스 0이 왼쪽 상단이고, 인덱스 3이 첫 번째 열의 가장 낮은 숫자이고 12가 첫 번째 행의 오른쪽 끝 번호입니다. OpenGL FAQ은이 용어에 완전히 만족하지는 않지만 일반적으로 열 - 주요 레이아웃이라고합니다.
관련 문제
- 1. glTranslatef 문제
- 2. glRotatef 문제
- 3. OpenGl 로테이션 및 번역
- 4. OpenGL 및 무한 라이트 위치?
- 5. iPhone OpenGL ES에서 glRotatef()를 사용하여 회전을 취소하는 방법은 무엇입니까?
- 6. OpenGL ES 학습 - 회전에 대한 약간의 질문
- 7. 처리 및 OpenGL - 카메라 위치 변경 중?
- 8. iPhone OpenGl : 3D 공간에서 객체 위치 찾기
- 9. Windows에서의 OpenGL 텍스트 위치
- 10. C++ OpenGL 좌표 변환
- 11. 조명 및 OpenGL ES
- 12. 3D 큐브 위치 추적 OpenGL?
- 13. OpenGL : 변환 이해
- 14. 얻기 및 OpenGL 모델 뷰 행렬
- 15. 2D에서 OpenGL 회전
- 16. OpenGL 회전?
- 17. C++/OpenGL - 사각형 회전
- 18. OpenGL 문 애니메이션
- 19. 아이폰 OpenGL : 오브젝트의 위치를 얻는 중/현재 ID가
- 20. Freetype 및 OpenGL 관련 문제
- 21. 렌더링 후 OpenGL 포인트 위치 (3d -> 2d)
- 22. OpenGL ES 2.0 및 glPushMatrix, glPopMatrix
- 23. OpenGL : 변환 후 특정 점의 좌표를 얻으려면 어떻게해야합니까?
- 24. OpenGL, 세계 대 객체 좌표 매핑? (역행렬)
- 25. GO-OpenGL LoadMatrixd 및 GetDoublev 문제
- 26. OpenGL-ES에서 여러 객체를 사용하는 방법
- 27. 세계 원점 주변의 OpenGL 회전 로컬 원점
- 28. OpenGL : 모든 행성은 애니메이션 할 때 태양 주위로 같은 속도를 가지고 있습니다.
- 29. 구체가있는 GL_STENCIL을 사용하는 OpenGL
- 30. OpenGL, GL_MODELVIEW GL_PROJECTION의 문제
큐브의 새로운 위치를 찾고 있다면 가장 잘못된 것이 있습니다. 이 행렬 재료는 드로잉을보다 쉽게하기위한 것입니다 (모든 것을 수동으로 다시 계산할 필요없이 다른 위치에 물건을 그릴 수 있습니다). 나는 그것을 게임 로직을 계산하는 데 사용하지 않을 것이다. 당신이하려고하는 것에 대한 더 자세한 정보가 있습니까? – Mario
추천 정보 읽기 -http : //u.cs.biu.ac.il/~kapaho/CG/06_3d_trans.pdf#page=21 – URL87