- 개요
Scene을 구성하는 GameObject 또는 Actor와 같은 요소들은 Transform 정보를 갖고 있으며
Transform은 각각 다음과 같은 3가지의 데이터로 구성되어 있다
- 크기(S) : 2차원 벡터
- 회전(R) : 각 θ
- 이동(T) : 2차원 벡터
위와 같이 구성된 3개의 데이터는 다음과 같이 3개의 아핀 변환행렬에 대응된다

이때 행렬 곱의 성질을 사용하면 3가지 아핀 변환을 모두 수행하는 하나의 행렬을 만들 수 있다
그러나 행렬 곱은 교환 법칙이 성립하지 않으므로 아핀 변환을 적용하는 순서를 결정하고 진행해야 한다
이때의 경우의 수는 총 6가지이며 프로젝트는 열 기준 행렬을 사용하므로 오른쪽에서 왼쪽으로 계산한다
- S · R · T
- S · T · R
- T · S · R
- T · R · S
- R · T · S
- R · S · T
위와 같이 구성된 6가지의 경우의 수에서 알맞은 변환 순서를 선택한 후의 결과는 모델링 행렬이 된다
따라서 상황에 맞춰서 6가지의 경우의 수 중에서 적합한 변환 순서를 선택해야 한다
1) 이동 변환에 대한 데이터

개발자가 GameObject의 트랜스폼 이동값 (t1, t2)를 설정했다고 가정하면
GameObject의 위치는 개발자가 설정한 이동값이 되어야 한다
그러나 위와 같이 이동 변환을 우선 수행하는 경우 물체의 위치는 설정한 값이 아닌 다른 값으로 설정된다
이는 회전 변환이 아닌 크기 변환을 사용해도 마찬가지이다
따라서 이동 변환은 가장 마지막에 진행해야 하는 것이 바람직하다
최종적으로 수행할 수 있는 합성변환의 경우의 수는 T · S · R과 T · R · S의 2가지로 압축된다
2) 회전 변환과 크기 변환 비교

크기 변환을 우선 적용한 결과는 위와 같이 직사각형이 회전한 모습을 볼 수 있다
반대로 회전 변환을 우선 적용한 결과는 마름모가 나타나는 모습을 볼 수 있다
회전 변환은 물체의 형태를 그대로 보존하는 강체 변환으로 동작한다
따라서 강체 변환인 회전 변환을 적용해 형태를 유지하는 것이 사용자 입장에서 가장 직관적으로 동작한다
- 최종 결론

최종적으로 가장 보편적인 Transform의 변환은 위와 같이 동작한다
크기 변환 -> 회전 변환 -> 위치 변환 순서로 이뤄지는 합성 변환이 Transform의 가장 일반적인 변환의 형태이다

최종적으로 변환을 적용할 순서를 기반으로 3가지 변환을 수행하는 합성 행렬은 위와 같고
해당 합성 행렬을 모델링 행렬이라고 표현한다
'수학 > 이득우의 게임 수학' 카테고리의 다른 글
| Scene의 구조 (3) - 로컬 공간과 로컬 축 (0) | 2026.01.07 |
|---|---|
| Scene의 구조 (1) - 프로젝트에서 Scene의 구성 (0) | 2025.12.24 |
| 게임 엔진의 구성 요소 (0) | 2025.12.24 |
| 무게중심좌표 (0) | 2025.12.03 |
| 메시 (0) | 2025.11.26 |