JUST DO IT PROJECT
[CG]컴퓨터 그래픽스 03. 기하 변환 Geometric Transformation 본문
2020/04/06 - [CSE] - [CG] 컴퓨터그래픽스 01.기본개념
2020/04/06 - [CSE] - [CG] 컴퓨터그래픽스 02. Rasterization
2020/04/07 - [CSE] - [CG]컴퓨터 그래픽스 03. 기하 변환 Geometric Transformation
첫번째 포스팅에서 그래픽스 파이프라인은 대부분 좌표계 변환으로 이루어진다는 말씀을 드렸습니다. 이번 포스팅에서는 2차원, 3차원 공간에서의 좌표변환을 알아보겠습니다. 좌표 변환은 수학적으로 보았을 때 행렬연산으로 계산할 수 있습니다.
4. 2D 기하변환, 2D Geometric Transformations
기본 변환
2차원의 좌표는 보통 먼저 간단한 2차원 변환을 몇가지 알려드리자면
- 이동변환(= 평행이동) Translation: 행렬 덧셈
- 회전변환 Rotation: 행렬 곱셈
- 사이즈변환 Scaling: 행렬 곱셈
Homogeneous Coordinates
위에서 살펴본 기본 변환을 보시면, 이동변환만 행렬의 덧셈으로 이루어져있음을 확인할 수 있습니다. 만약 이 변환도 곱셈으로 표현할 수 있다면 모든 변환을 행렬의 곱셈형태로 표현할 수 있을겁니다. 이는 새로운 좌표계를 도입하면 가능합니다.
-
유클리드 좌표계Euclidean Coordinates: 우리가 흔히 아는 좌표계로 2차원의 경우(x,y)와 같이 표시합니다.
-
동차좌표Homogeneous Coordinates: 유클리드 좌표계에 한 차원을 더해서 표현합니다. (x',y',h), x=x'/h, y=y'/h, 보통 h=1을 많이 사용합니다.
그러면 위에서 언급한 기본 변환들은 다음과 같이 변하게 됩니다.
- 이동변환(= 평행이동) Translation: 행렬 곱셈
- 회전변환 Rotation: 행렬 곱셈
- 사이즈변환 Scaling: 행렬 곱셈
합성변환 Composite Transformation
앞서 언급한 변환들을 합성하면 여러가지 변환을 표현하는 행렬을 만들어낼 수 있습니다. 예를들어 특정 정점을 기준으로 하는 회전은 다음과 같은 기본 변환을 거치면 됩니다.
- 원점으로 평행이동
- 회전
- 원래대로 평행이동
기타 변환
이 외에도 몇가지 변환이 더 있습니다.
- Shear : 좌표축 방향으로 shift 시키는 변환입니다.
- Reflection
x축 대칭
y축 대칭
원점대칭
5. 3D 기하변환, 3D Geometric Transformations
3차원도 2차원과 다를 것은 별로 없습니다.
기본변환
- 이동변환(= 평행이동) Translation: 행렬 덧셈
- 회전변환 Rotation: 행렬 곱셈
z축 회전변환
y축 회전 변환
x축 회전 변환
임의의 축 회전 변환
- 사이즈변환 Scaling: 행렬 곱셈
- z축 대칭이동 Reflection
아래 내용은 차차 업로드될 예정입니다.
6. 3D Viewing
7. Clipping Algorithm
8. Illumination Models and Surface-Rendering Methods
9. Ray Tracing
10. Texture Mapping
11. Visible Surface Determination
12. 3D Object Representation
'CSE' 카테고리의 다른 글
[CG] 컴퓨터그래픽스 02. Rasterization (0) | 2020.04.06 |
---|---|
[CG] 컴퓨터그래픽스 01.기본개념 (1) | 2020.04.06 |