그래픽스/DX11

D3D11 애파인 변환(=아핀 변환)

뽀또치즈맛 2024. 12. 16. 20:34

 

 

이동은 선형변환이 아니다.

하지만 그래픽스에서 이동과 선형 변환을 동시에

표현하고 싶을 때 사용하는 것이 애파인 변환이다.

 

즉, 애파인 변환이란

선형 변환과 이동을 하나의 행렬로 표현한 것이다.

 

Homogeneous Coordinates란?

선형 변환하고 선형 변환이 아닌

이동을 합치기 위해서 새롭게 추가가 된 개념이다.

  • 벡터 : (x,y,z,0) < 이동 x
  • 포인트 : (x,y,z,1)
  • 포인트 - 포인트 = 벡터
  • 포인트 + 벡터 = 포인트
  • 변환 전 직선은 변환 후에도 직선이다.

이 식을 행렬 식으로 표현하면 다음과 같다.

이러한 개념을 수학적으로 간단히 나타내면 애파인의 a를 따고,

선형변환을 Tau라고 했다. 애파인 변환을 식으로 나타내면 다음과 같다.

이런 식으로 애파인 트랜스폼을 사용할 수 있으므로,

3차원에서는 4x4 행렬을 사용한다고 했었다.

그럼 이는 3차원에서는 다음과 같은 행렬을 가진다.

이동 행렬

 

여기서 이동 행렬 부분은 다음과 같다.

이동 행렬 부분만 역행렬 한다면 다음과 같이 표현할 수 있다.

 

스케일링과 회전 행렬

 

이 행렬은 다소 식이 복잡하다.

하지만 실질적으로 스케일링에 관련된 부분만 때로 빼면 보기 간편하다.

이 행렬은 아래와 같다. 

이 행렬은 에파인 트랜스폼에 대한 회전 행렬로 확장이 된 것이다.