본문 바로가기

나의 플랫폼/안드로이드

[ Android Opengl es 2.0 ] 화면 전체 이동 및 회전

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
 
  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);



위와 같이 변경을 해주면 된다. 

                                       출처: http://www.misofruit.co.kr/seojewoo/programming/opengl/opengl-1.htm

그림의 upX 와 upY에 30.0f씩을 줘 카메라가 비틀어지게 만드는 것이다.

이런 방법으로 이동이나 회전등~ 카메라에 관련된 편집을 할 수 있다.