그래픽스

Modeling Transformation

CMS419 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구조로 만든다.

변환의 예)