OpenGL - Day 1 #4 Area Concept, API

원종운·2020년 9월 8일
0

Cliping Area

  • OpenGL상에서 무엇을 그리기 위해 좌표를 어떻게 해석해야되는지를 알려주는 과정이 필요하며 이를 Cliping이라 한다.
  • 이를 위해서는 직교 좌표 영역으로 할당해야 하며, 정확히 말하면 직교 좌표계의 커다란 영역 중 일부를 잘라 창에 할당하는 것이다.

ViwePort

  • 논리적 직교 좌표를 물리적인 화면 픽셀 좌표로 변환하는 과정을 의미합니다.
  • 즉, 창의 클라이언트 영역 내에 클리핑 영역을 그리는데 사용되는 영역을 의미합니다.

glViewPort

  • ViewPort를 지정합니다.
  • 매개변수로는 뷰포트의 시작점의 x좌표, y좌표, 그리고 폭(width)과 높이(height)입니다.
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);

glMatrixMode

  • 매개변수로는 행렬 모드를 입력받으며, 해당 함수로 지정한 행렬은 이후의 모든 행렬 연산의 대상이 되며, 주로 모델뷰 행렬이나 투영 행렬이 변환 대상이다.

  • 기본적인 행렬은 모델뷰 행렬입니다.

  • 모드설명
    GL_MODELVIEW모델 뷰 변환 행렬, 기본 값
    GL_PROJECTION투영 행렬
    GL_TEXTURE텍스처 행렬
    GL_COLOR색상 행렬, 단 이 기능은 ARB_imaging 확장 기능이 지원되어야 합니다.
void glMatrixMode(GLenum mode);

glLoadIdentity

  • 현재 행렬, glMatrixMode로 지정된 내부 행렬을 단위 행렬로 만들어주며 이는 행렬을 리셋한다는 뜻이며 어떠한 변환도 하지 않는다는 뜻입니다.
void glLoadIdentity(void);

glOrtho

  • Viewport가 변경되었을 때 발생되는 오류, 왜곡 현상을 막는데 주로 사용하며, 보는 살마의 좌표 체계를 바꾸는데 사용됩니다.
  • 직교투영을 만들어주는 함수이며, (left, right, bottom, top)은 각각 클리핑 영역의 왼쪽, 오른쪽, 아래, 위의 좌표를 하며 (zNear, zFar)은 클리핑 영역의 앞쪽과 뒤쪽 좌표를 말합니다.
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);

glutPostRedisplay

  • 렌더링 다시 되게끔 요청하는 함수입니다.
void glutPostRedisplay(void);
profile
Java, Python, JavaScript Lover

0개의 댓글