출처: http://gogorchg.tistory.com/entry/Android-Opengl-es-20-%ED%99%94%EB%A9%B4-%EC%A0%84%EC%B2%B4-%EC%9D%B4%EB%8F%99-%EB%B0%8F-%ED%9A%8C%EC%A0%84
Opengl es 2.0에서는 한 Object만 회전이나 이동을 시킬 시에는 Matrix의 곱을 이용한다.
하지만, 생각을 해보니 Object만 움직이는 게 아니라 화면 전체를 움직여야하는 상황이 발생할 수도 있다.
이럴 경우 Matrix 곱을 이용해서는 전체적으로 움직임을 나타낼수가 없다.
Opengl es 1.1을 해본 사람일 경우~ 뭔가 느낌이 오는 것이 있을 것이다.
바로~~~ 카메라의 시점을 변화 시키는 것이다.
Matrix.setLookAtM(mVMatrix, 0, 0, 0,-mHeight, 0f, 0f, 0f, 0f, 30.0f, 0.0f);
Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1, 1, 2f, xMaxOffset*2);
위 두 함수 에서
setLookAtM : 바로 보는 시점 ( 카메라의 위치 )
frustumM : 비쳐지는 영역 ( 카메라 렌즈 )
이 때 만약 전체 화면을 45도 정도 틀고 싶을 시
Matrix.setLookAtM(mVMatrix, 0, 0, 0,-mHeight, 0f, 0f, 0f, 30.00f, 30.0f, 0.0f);
위와 같이 변경을 해주면 된다.
그림의 upX 와 upY에 30.0f씩을 줘 카메라가 비틀어지게 만드는 것이다.
이런 방법으로 이동이나 회전등~ 카메라에 관련된 편집을 할 수 있다.
'구글과인터넷 > 안드로이드' 카테고리의 다른 글
안드로이드 Android 메모리 누수(memory leak) 관련 (0) | 2012.12.12 |
---|---|
안드로이드 Android 네트워크 Sockettimeout에 대해... (0) | 2012.12.12 |
안드로이드 Android opengl 또는 Opengl es 2.0 기본적인 흐름도. 관련 (0) | 2012.12.12 |