스마트기기개발관련/OpenGL (그래픽, 게임)

안드로이드 Android 오픈지엘 OpenGL ES 2.0 화면 전체 이동 및 회전

AlrepondTech 2012. 11. 13. 15:50
반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

 

출처: 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

);

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

 

                                       출처: 

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

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

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

 

 

=================================

=================================

=================================

 

 

 

 

반응형