본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] OpenGL 기초 APIs ( Face & View type )

by 돼지왕 왕돼지 2012. 2. 14.
반응형


안녕하세요. 돼지왕 왕돼지입니다.
오늘은 OpenGL 기초 APIs 중 Face 와 관련된 녀석들과, Projection 관련된 녀석들을 알아보고자 합니다.


gl.glFrontFace(GLenum mode);


 - front-back-facing polygon 을 정의.
 - mode 값은 보여지는 면을 설정하는 binding 모드 결정. ( 예를 들어 GL_CW 면 시계방향(clockwise) 로 binding 된 면이 앞면이 됩니다. )
   GL10.GL_CW : clockwise
   GL10.GL_CCW : counter clockwise
 
 

gl.glCullFace(GLenum mode);

 
 - front-back-facing polygon 중 어떤 녀석을 cull 할지 결정. ( cull 을 잘라내다, 안 보이게 하다 라는 의미로 보시면 되겠습니다. )
 - mode는 어떤 놈을 cull 할지에 대한 value.
   GL10.GL_FRONT : 앞면을 자름.
   GL10.GL_BACK : 뒷면을 자름. (default)


제공되는 View type

 
  Orthographic: distance에 의한 크기변화 없음 ( 아주아주 먼 곳에서 물체를 본다고 생각하는 개념. 혹은 Eye 가 point 가 아닌 projection plane 으로 보는 개념 )
  Perspective : distance에 의한 크기 변화 있음 ( Real World 와 매우 흡사 )
 
 

gl.glMatrixMode(GLenum mode);

 
 - 현재의 matrix를 지정해줌.
 - mode는 이후의 matrix operation의 target이 되는 matrix stack 지정.
   GL10.GL_MODELVIEW : modelview matrix stack
   GL10.GL_PROJECTION : projection matrix stack
   GL10.GL_TEXTURE : texture matrix stack
 
 

gl.glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far);


 - current matrix와 orthographic matrix를 곱함. 결과는 parallel projection
 - left, right 는 clipping plane의 left right
 - bottom, top 은 clipping plane의 bottom top
 - near, far은 clipping plane의 near, far
 
  

gl.glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far);


 - current matrix와 perspective matrix를 곱함. 결과는 projection but depth의 영향
 - left, right 는 clipping plane의 left right
 - bottom, top 은 clipping plane의 bottom top
 - near, far은 clipping plane의 near, far
   

gl.glTranslatef(GLfloat x, GLfloat y, GLfloat z);


 - current matrix와 translation matrix를 곱함. 결과는 좌표의 이동.

 
로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글