Computer/그래픽스

투상변환과 뷰포트변환

에린_1 2023. 1. 17. 21:21
728x90

투상(Projection)

투상(Projection), 가시변환(Viewing Transformation) - 모델좌표계, 전역좌표계, 시점좌표계를 순차적으로 거친 다각형 정점 좌표를 2차원 투상면(View Plane)으로 사상시키는 과정

  • 정사투상
  • 원근투상

GL의 투상변환(Projection Transformation)

  • void glGetFloatv(GLenum pname, GLfloat* params); - 현 투상행렬 값을 검색하여 params배열로 저장
  • GL의 직교투영
  • 일반적인 직교투영( 정규화 변환 - Normalization Transformation)
    • void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); -> 시야 영역 설정 (near, far는 양수로 표시)
    • 절단 작업 진행
    • 정규 시야영역 내의 물체만을 대상으로 2차원으로 투상작업 진행
  • GL의 원근투영
  • 일반적인 원근투영
    • void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
    • void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);

GL의 뷰포트변환(Viewport Transformation)

  • 원근 분할된 정규 시야 영역에 있는 물체가 2차원 화면으로 매핑하는 과정
  • 뷰포트 설정
    • void glViewport(GLint left, GLint bottom, GLsizei width, GLsizei height);
    • 재정규화 - Z값 범위를 [-1, +1] 에서 [0,1]로 사상
  • 시야 영역과 뷰포트
    • 시야 영역과 뷰포트의 종횡비가 일치해야한다.
728x90

'Computer > 그래픽스' 카테고리의 다른 글

래스터변환(Rasterization)  (0) 2023.01.19
가시성 판단(Visibility Detection)  (2) 2023.01.18
모델 변환과 시점 변환  (0) 2023.01.17
OpenGL API  (0) 2023.01.13
그래픽 프로세서  (0) 2023.01.13