본문 바로가기
프로그래밍 이야기/GameDev

[게임이론] 행렬

by Mulder5 2021. 1. 2.
반응형

객체의 Position, Rotation, Scale은 내부적으로 다음의 변환 행렬 절차를 거친다. 

(항등행렬, 크기 변환 행렬, 이동 행렬, 회전 행렬)

행렬의 기본 연산

  • 행렬의 합, 차의 규칙
    두 항은 동일한 행과 열로 구성 되어야 한다.

  • 행렬의 곱의 규칙
    전항의 행의 길이와 후항의 열의 길이가 동일해야 곱할 수 있다. 곱할때 동일 행의 값과 동일 열의 값을 곱한다. 이에 대한 예는 다음과 같다.

   

동차 좌표계

  • 변환 행렬 계산을 좀 더 쉽게 하는데 도움이 된다.
  • (x, y, z) -> (x, y, z, 1)

변환 행렬

예를 들어 (2, 1, 3)의 좌표를 x방향으로 3만큼 이동하면 (5, 1, 3)이라는 것을 쉽게 알 수 있다. 그런데 회전이나 복잡한 이동을 이런 식으로 쉽게 알기란 어렵다. 그러므로 다음의 행렬 변환을 사용한다.

  • 항등 행렬

  • 크기 변환(Scaling) 행렬

  • 이동 행렬

  • 회전 행렬 (X 축 회전)

  • 회전 행렬 (Y 축 회전)

  • 회전 행렬 (Z 축 회전)

 

적용 예

(2, 1, 3) 좌표를 x방향으로 3만큼 이동 한다면?

 

(2, 1, 3) 좌표를 Z축으로 30도 회전, Y 방향으로  4만큼 이동 한다면?

 

(3, 1, 2)의 기준으로 항등 행렬을 적용 했을 경우 의 예

 

(3, 1, 2)를 기준으로 x방향으로 2배, y 방향으로 3배, z축으로 4배의 크기 변환 행렬을 적용 했을 경우의 예

 

(1, 0, 0)을 z축으로 90도 회전한다면 다음의 그림과 같이 (0, 1, 0)일 것이다. 이 예를 변환 행렬에 적용해보자.

반응형