갬장장이
[Mathematics] 12. TRS Matrix
갬장장이
갬장장이의 코드 대장간
갬장장이
전체
오늘
어제
  • 분류 전체보기
    • 게임 연구소
    • 게임 제작
      • Banditors (2024~)
      • Rovenhell (2023)
      • Geophyte (2020~2021)
      • 아드레날린 러시 (2021)
      • Treadmill (2019)
      • 습작들 (2019~)
      • 그 외 (~2018)
    • 개발
      • 언리얼 엔진
      • 수학
      • 네트워크
      • 그래픽스
      • OpenGL
      • DirectX
    • 일상
    • 기타 제작

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • [공지] 블로그 안내

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
개발/수학

[Mathematics] 12. TRS Matrix

2022. 2. 21. 19:46

3차원 공간에 있는 오브젝트의 가장 기본적인 물리적 연산 세가지가 바로 Translation(이동), Rotation(회전), Scaling(크기 변환)이다.

그동안 앞선 글들에서 우리는 이 세가지의 기본 연산을 행렬곱으로 표현할 수 있음을 배웠다. 그렇다면 이 변환들을 해주는 행렬들을 미리 다 곱해놓으면 단 한 번의 행렬곱으로 모든 물리적 연산을 표현할 수 있지 않을까?

실제로도 그렇다. 그러나 여기서 주의해야 하는 것은 어떤 연산을 먼저 하는지가 중요하다는 점이다.

위 사진처럼 물체를 이동시킨 후 회전시키고 그 다음 크기를 변화시키면 우리가 원하는 결과가 나오지 않았음을 알 수 있다.

때문에 우리는 항상 Scaling, Rotation, Translation의 순서로 연산을 해주어야 한다.

이 연산은 각각 한 번씩 총 세 번의 행렬곱으로 표현될 수 있고, 그 행렬곱에 사용되는 행렬들을 먼저 곱해서 하나의 행렬곱으로 나타낼 수 있다.

이 하나의 행렬곱에 사용되는 행렬을 우리는 TRS 행렬이라고 부른다. TRS행렬은 거창할 것 없이 우리가 앞에서 다뤄왔던 T,R,S에 필요한 변환 행렬들을 TRS의 순서로 곱해준 것이다.

주의: 아까 연산 순서(SRT)와 이름이 반대인 것을 알 수 있는데, 그 이유는 행렬곱의 특성상 먼저 연산되어야 되는 행렬이 뒤쪽으로 가기 때문이다.
(TRS • v 하면 S • v가 먼저 계산된다)

'개발 > 수학' 카테고리의 다른 글

[Mathematics] 15. 3차원 Line-AABB Intersection  (0) 2022.04.03
[Mathematics] 13. 선형변환의 기하학적 의미  (0) 2022.02.21
[Mathematics] 11. Translation  (0) 2022.02.21
[Mathematics] 10. Rotation  (1) 2022.02.16
[Mathematics] 9. Scaling  (0) 2022.02.07
'개발/수학' 카테고리의 다른 글
  • [Mathematics] 15. 3차원 Line-AABB Intersection
  • [Mathematics] 13. 선형변환의 기하학적 의미
  • [Mathematics] 11. Translation
  • [Mathematics] 10. Rotation
갬장장이
갬장장이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.