수학/이득우의 게임 수학

Scene의 구조 (2) - 모델링 행렬의 설계

monstro 2025. 12. 31. 17:26
728x90
반응형

- 개요

Scene을 구성하는 GameObject 또는 Actor와 같은 요소들은 Transform 정보를 갖고 있으며

Transform은 각각 다음과 같은 3가지의 데이터로 구성되어 있다

  • 크기(S) : 2차원 벡터
  • 회전(R) : 각 θ
  • 이동(T) :  2차원 벡터

 

위와 같이 구성된 3개의 데이터다음과 같이 3개의 아핀 변환행렬에 대응된다

크기(S) / 회전(R) / 이동(T)에 대한 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 · RT · R · S의 2가지로 압축된다

 

2) 회전 변환과 크기 변환 비교

회전 변환과 크기 변환의 순서에 따른 차이 비교

 

크기 변환을 우선 적용한 결과위와 같이 직사각형이 회전한 모습을 볼 수 있다

반대로 회전 변환을 우선 적용한 결과마름모가 나타나는 모습을 볼 수 있다

회전 변환은 물체의 형태를 그대로 보존하는 강체 변환으로 동작한다

따라서 강체 변환인 회전 변환을 적용해 형태를 유지하는 것이 사용자 입장에서 가장 직관적으로 동작한다

 

- 최종 결론

크기 변환 -> 회전 변환 -> 위치 변환

 

최종적으로 가장 보편적인 Transform의 변환은 위와 같이 동작한다

크기 변환 -> 회전 변환 -> 위치 변환 순서로 이뤄지는 합성 변환Transform의 가장 일반적인 변환의 형태이다

 

Transform 모델링 행렬

 

최종적으로 변환을 적용할 순서를 기반으로 3가지 변환을 수행하는 합성 행렬은 위와 같고

해당 합성 행렬을 모델링 행렬이라고 표현한다

728x90
반응형

'수학 > 이득우의 게임 수학' 카테고리의 다른 글

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