JUST DO IT PROJECT

[CG]컴퓨터 그래픽스 03. 기하 변환 Geometric Transformation 본문

CSE

[CG]컴퓨터 그래픽스 03. 기하 변환 Geometric Transformation

웨일.K 2020. 4. 7. 01:03
반응형

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

앞서 언급한 변환들을 합성하면 여러가지 변환을 표현하는 행렬을 만들어낼 수 있습니다. 예를들어 특정 정점을 기준으로 하는 회전은 다음과 같은 기본 변환을 거치면 됩니다.

  1. 원점으로 평행이동
  2. 회전
  3. 원래대로 평행이동

기타 변환

이 외에도 몇가지 변환이 더 있습니다.

  • 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