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 |