Transformation, Homogeneous Coordinates

Update:     Updated:

Category:

Tags:



Transformation

렌더링에서는 크게 Affine과 Viewing transformation으로 나눌 수 있는데, 이 중에서 Affine transformation이 일반적으로 알려져 있는 오브젝트의 위치와 모양 등을 변형시키는 것을 말한다.

image



Transformation의 종류들은 다음과 같다.

  • Translation : 특정 위치로 좌표를 이동시키는 것
  • Rotation : 특정 각도로 회전시키는 것

    image

    -> 회전 행렬이 저러한 형태로 나오는 이유를 보이면 :

    image

  • Scaling : 오브젝트의 길이를 키우거나 줄이는 것

    image

  • Shearing : 수평 혹은 수직 방향으로 오브젝트를 미는 것

    image

  • Reflection : 좌표의 축을 기준으로 오브젝트를 뒤집는 것

    image

  • Composition : 두 개 이상의 변형을 오브젝트에 적용시키는 것

    image



Homogeneous Coordinates

” n차원 사영 공간을 n+1개의 좌표로 나타내는 좌표계 “

동차 좌표계라고 부르며, 차원을 추가해서 operation을 진행하는 것을 말한다.



2D Translation

좌표의 미세한 차이만 발생하기 때문에 $2*2$ 크기의 행렬의 곱셈 형태로 나타낼 수 없다는 문제점이 있다.

$x^{‘}=x + x_{\delta}$

$y^{‘}=y + y_{\delta}$

따라서 이러한 상황을 해결하기 위해서 도입한 개념이 Homogeneous coordinates!

image

하나의 차원을 추가하면 다음과 같이 훨씬 수월한 방식으로 translation 좌표를 계산할 수 있기 때문에 동차 좌표계를 도입해서 사용해야 한다.

image



Translation과 Homogeneous coordinate 적용 사례

특정 위치의 직사각형 물체의 크기를 키우고자 한다고 할 때,

image

  1. 먼저 원점으로 직사각형 물체를 translation
  2. scaling으로 물체의 크기를 크게 조정
  3. 다시 적절한 원래 위치로 물체를 translation






맨 위로 이동하기