반응형
객체의 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)일 것이다. 이 예를 변환 행렬에 적용해보자.
반응형
'프로그래밍 이야기 > GameDev' 카테고리의 다른 글
[게임이론] 힘과 가속도의 활용 (0) | 2021.01.14 |
---|---|
[게임이론] 힘과 가속도 (0) | 2021.01.10 |
[게임이론] 벡터-외적의 활용 (0) | 2020.12.31 |
[게임이론]벡터의 외적 (0) | 2020.12.28 |
[게임이론] 백터의 내적 (0) | 2020.12.24 |