1. OpenGL

오현석·2022년 5월 25일
0

OpenGL은 Model, View, Projection으로 이루어 진다

  • Modle Matrix : 화면에 나타내고자 하는 객체

  • View Matrix : 객체를 바라보는 대상, 카메라 객체를 의미하며 피사체를 찍을 때 바라보는 시점

  • Projection Matrix : 카메라가 모델을 볼 수 있는 공간


그래픽 객체 그리기

안드로이드에서 OpenGL을 사용하여 그래픽 객체를 그리기 위해서는 세가지 과정이 필요하다

  • GLSurfaceView

  • GLSurfaceView.Render

  • Triangle (그리려는 사용자 정의 그래픽 객체)

따라서 삼각형을 그릴시 3차원좌표(x,y,z)를 사용하여 각 점마다 좌표를 지정해야 한다

단 OpenGL과 안드로이드 좌표계는 차이가 있다

OpenGL은 정사각형 형태의 균일 좌표계를 가정하며 안드로이드 좌표계는 직사각형 형태의 좌표계를 가정한다

이러한 문제를 해결하기 위해서는 Projection의 좌우를 비율로 설정하고 적절한 View를 설정해야 한다


Projection Matrix

Projection Matrix는 FrustumM()함수를 이용하여 만든다

Matrix.frustumM(mProjcetionMatrix, 0, -ratid, ratio, -1, 1, 3, 7)


View Matrix

View Matrix는 setLookAt()함수를 이용하여 만든다

Matrix.setLookAtM(mViewMatrix,0,0,0,-3,Of,Of,Of,Of,1.0f,0.0f);
인자1 : View Matrix
인자2 : Matrix offset
인자3~5 : eye (카메라의 위치)
인자6~8 : center (카메라가 바라보는 방향)
인자9~11 : up vector (카메라의 위쪽 방향)

profile
지망생

0개의 댓글