일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Geometry Modeling
- shader programming
- 베지에 곡선
- Graphics
- 핵심 API로 배우는 윈도우프로그래밍
- c4d
- 운영체제
- MFC 윈도우 프로그래밍
- denoising
- OpenGL
- MFC
- 셰이더
- Mesh Processing
- 오픈지엘
- 컴퓨터 구조
- 윈도우 구조
- 컴퓨터 아키텍쳐
- 렌더링
- 윈도우프로그래밍
- 그래픽스기초
- window programming
- bezier curve
- 그래픽스
- 셰이더프로그래밍
- shader
- 윈도우 프로그래밍
- win32
- Win32 API
- modeling
- 윈도우
- Today
- Total
오다기리 박의 알고리즘 노트
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 07. 투상변환과 뷰포트변환 본문
Chapter 07. 투상변환과 뷰포트변환
Section 01. 투상 (Projection)
투상(Projection), 가시변환(Viewing Transformation) : 모델좌표계-전역좌표계-시점좌표계를 순차적으로 거친 다각형 정점 좌표를 2차원 투상면(View Plane, Projection Plane)으로 사상시키는 과정.
정사투상(Orthographic Projection)
…
원근투상 (Perspective Projection)
Section 02. GL의 투상변환 (Projection Transformation)
void glGetFloatv(GLenum pname, GLfloat *params); -> 현 투상행렬 값을 검색하여 params 배열로 저장
GL 파이프라인
설계된 물체 또는 그래픽 라이브러리에서 가져온 물체를 장면에 맞도록 기하변환시키는 것을 모델변환(Modeling Transformation)이라고 한다.
변환된 물체를 관찰하기 위해 카메라 위치와 방향을 설정하는 것을 시점변환, 뷰변환(Viewpoint Transformation, View Transformation)이라고 한다.
카메라의 렌즈를 선택하고 촬영하여 물체의 2차원 영상을 필름에 맺히게 하는 것이 투상변환(Projection Transformation)
GL의 직교투영
기본적인 직교투영
: 비가역적 = 3차원에서 2차원으로 축소된 것을 다시 복원할 수 없다.
일반적인 직교투영 (정규화 변환 : Normalization Transformation)
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); -> 시야 영역 설정 (near, far는 양수로 표시)
glOrtho에 의해 행렬이 물체 정점에 곱해진다.
절단 작업 진행
정규 시야영역 내의 물체만을 대상으로 2차원으로 투상작업 진행
GL의 원근투영
기본적인 원근투영
일반적인 원근투영 (정규화 변환 : Normalization Transformation)
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
Section 03. GL의 뷰포트변환 (Viewport Transformation)
GL 파이프라인
원근 분할된 정규 시야 영역에 있는 물체가 2차원 화면으로 매핑하는 과정
Screen Coordinate System = Viewport Coordinate System = Window Coordinate System
뷰포트 설정
void glViewport(GLint left, GLint bottom, GLsizei width, GLsizei height);
재정규화 : z값 범위를 [-1, +1]에서 [0, 1] 로 사상
시야 영역과 뷰포트
시야 영역 (View Volume)과 뷰포트의 종횡비가 일치해야한다.
'컴퓨터 그래픽스 > OpenGL' 카테고리의 다른 글
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 09. 래스터변환(Rasterization) (0) | 2019.02.14 |
---|---|
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 08. 가시성 판단 (Visibility Detection) (0) | 2019.02.14 |
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 06. 모델변환과 시점변환 (0) | 2019.02.14 |
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 05. 오픈지엘 기본 틀 (0) | 2019.02.14 |
[OpenGL로 배우는 컴퓨터 그래픽스] Chapter 04. 오픈지엘 API (0) | 2019.02.14 |