Transformation, Homogeneous Coordinates
Category: Computer Graphics
Tags: transformation rendering
Transformation
렌더링에서는 크게 Affine과 Viewing transformation으로 나눌 수 있는데, 이 중에서 Affine transformation이 일반적으로 알려져 있는 오브젝트의 위치와 모양 등을 변형시키는 것을 말한다.
Transformation의 종류들은 다음과 같다.
- Translation : 특정 위치로 좌표를 이동시키는 것
-
Rotation : 특정 각도로 회전시키는 것
-> 회전 행렬이 저러한 형태로 나오는 이유를 보이면 :
-
Scaling : 오브젝트의 길이를 키우거나 줄이는 것
-
Shearing : 수평 혹은 수직 방향으로 오브젝트를 미는 것
-
Reflection : 좌표의 축을 기준으로 오브젝트를 뒤집는 것
-
Composition : 두 개 이상의 변형을 오브젝트에 적용시키는 것
Homogeneous Coordinates
” n차원 사영 공간을 n+1개의 좌표로 나타내는 좌표계 “
동차 좌표계라고 부르며, 차원을 추가해서 operation을 진행하는 것을 말한다.
2D Translation
좌표의 미세한 차이만 발생하기 때문에 $2*2$ 크기의 행렬의 곱셈 형태로 나타낼 수 없다는 문제점이 있다.
$x^{‘}=x + x_{\delta}$
$y^{‘}=y + y_{\delta}$
따라서 이러한 상황을 해결하기 위해서 도입한 개념이 Homogeneous coordinates!
하나의 차원을 추가하면 다음과 같이 훨씬 수월한 방식으로 translation 좌표를 계산할 수 있기 때문에 동차 좌표계를 도입해서 사용해야 한다.
Translation과 Homogeneous coordinate 적용 사례
특정 위치의 직사각형 물체의 크기를 키우고자 한다고 할 때,
- 먼저 원점으로 직사각형 물체를 translation
- scaling으로 물체의 크기를 크게 조정
- 다시 적절한 원래 위치로 물체를 translation