티스토리 뷰

 
  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씩을 줘 카메라가 비틀어지게 만드는 것이다.

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

댓글
댓글쓰기 폼
공지사항
Total
391,495
Today
55
Yesterday
296
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
글 보관함