-
Modeling Transformation그래픽스 2021. 10. 20. 13:09
오브젝트를 변환
- 물체들은 자신만의 좌표계를 가지고 있다.
- 한 씬에 여러개의 물체를 사용할 수 있다.
Basic 2D 변환
Translation 좌표이동
- x’ = x + tx
- y’ = y + ty
Scale 크기변환
- x’ = x * sx
- y’ = y * sy
Shear 찌그리기
- x’ = x + hx * y
- y’ = y + hy * x
Rotation 회전
- x’ = x * cosθ - y * sinθ
- y’ = x * sinθ + y * cosθ
행렬 표현
2 x 2 행렬 표현
2D
2D의 스케일 값(0,0을 기준)
2D의 회전값(0,0을 기준)
2D의 Shear 값
2D Mirror Y축 반전
2D Mirror (0,0) 반전
2D 이동
없다.
왜냐하면 2x2에서 이동은 표현이 안되고, 덧셈 밖에 표현이 안되기 때문에 행렬식이 없다.
선형 변환(Linear Transformations)
- Scale
- Rotation
- Shear
- Mirror (=Reflection)
선형 변환의 특징
- 원점을 원점으로 매핑
- 라인은 라인에 이동됩니다.
- 평행선은 평행이 유지된다.
- 비율이 유지됩니다.
- 다른 변환과 결합이 가능하다.
이동은 포함이 안된다.
homogeneous coordinate 동차 좌표
동차 좌표를 이용해서 2D 이동을 표현할 수 있다.
3 x 3을 이용해서 할 수 있다.
- (x, y, w) 위치의 점(x/w, y/w)을 나타냅니다.
- (x, y, 0)는 무한대를 나타낸다.
- (0, 0, 0)은 사용되지 않는다.
2D 행렬을 3 x 3으로 표현한 것
Affine Transformations
Linear Transformations + Transformations 이 추가된 것이다.
특징
- 원점으로 이동하지 못하다
- 라인은 라인에 이동됩니다.
- 평행선은 평행이 유지된다.
- 비율이 유지됩니다.
- 다른 변환과 결합이 가능하다.
Projective Transformations (투사 변환)
3D -> 2D 바꾸기
Pinhole camera() model
가운데 빨간 점이 구멍이 뚤러서, 이 쪽에서 상을 쏘면, 바깥으로 상이 보인다.
Projective Transformations
Affine transformation + Projective warps
- 평행선이 더이상 평행이 아니다. 굴곡이 있기 때문이다.
- 비율이 유지되지 않는다.
- 원점으로 이동하지 못하다
- 다른 변환과 결합이 가능하다.
- 라인은 라인에 이동됩니다.
Perspective 원근법이 들어가 있다.
행렬을 쓰는 이유
빠른 수정이 가능하다.표현하기 쉽다.
주의점
행렬 곱은 교환법칙이 안된다.A x B != B x A이다.
행렬에서는 순서가 중요하다.
임의의 (a,b)를 기준으로 회전, 크기를 변형할 때
1) 임의의 점 (a,b)을 원점으로 옮긴다.
2) 회전 혹은 스케일 을 변형
3) 다시 (a,b)로 움직인다.
3차원
3차원은 (x,y,z,w)이다
3차원은 4 x 4 행렬이다.
기본적인 3차원 좌표
3차원 회전
회전에도 교환 법칙이 성립되지 않는다.
원점을 지나는 임의의 축 a
만약 임의의 축 a를 기준으로 b만큼 회전하고 싶으면??
1) 기본축(z)으로 일치 시킨다.
2) z축으로 b만큼 회전시킨다.
3) 원래 방향으로 복귀시킨다.
변환 계층
만약, 제일 밑의 원통이 움직이면, 이 로봇 팔 전체가 움직여야 한다. 이 구조는 tree구조로 만든다.
변환의 예)