로컬 <-> 월드 트랜스폼 변환 시 모델링 행렬을 바로 곱하지 않는 이유
안녕하세요, 해당 강의를 듣고 난 후 조금 더 수학 지식을 쌓기 위해 '이득우의 게임수학' 책으로 공부하고 있는 취준생입니다.
제가 수학 지식이 얇아서 이해에 어려운 부분이 있어 질문 드립니다.
619p. ~ 624p. 에 걸쳐서
부모 월드 + 내 로컬을 이용한 내 월드 트랜스폼 구하기
부모 월드 + 내 월드를 이용한 내 로컬 트랜스폼 구하기 내용이 있는데,
여기서 왜 Scale, Rotation, Translation을 따로 구하는지 궁금합니다.
제가 생각을 해보았는데,
모델링 행렬끼리 곱해서 구해버리면 T * R * S * T * R * S 순서로 곱해져서,
Rotation과 Scale의 경우가 제대로 계산되지 않기 때문인 것인가요?
ex) 1의 경우 내 로컬 Transform의 Scale은 부모 Scale 내 로컬 Scale, Rotation은 부모 Quat * 내 로컬 Quat 이어야 하는데,
내 월드 트랜스폼을 구하기 위해 각 트랜스폼에서 구한 모델링 행렬끼리 곱해서 구해버리면 중간에 다른 연산이 들어간 상태에서 Scale, Rotation이 구해진다?
回答 1
2
안녕하세요 거의 막바지까지 다 읽으셨네요. 축하드립니다.
질문 내용의 수준을 보면 꽤나 책을 자세히 읽으신 것 같습니다. 저자로써 기쁘네요.
하나의 트랜스폼에 대해 대응하는 행렬 데이터를 별도로 보관하는 것은 추가 메모리 공간 혹은 계산이 요구됩니다.
( 계산된 행렬을 캐싱하는 방법도 있습니다. )
책에서는 행렬없이 트랜스폼 속성만 가지고 간편하게 계산 가능한 식을 만들어 사용하고 있습니다.
하지만 책과 다르게 트랜스폼마다 대응하는 행렬을 사용해 행렬연산을 하는 방법도 있습니다.
이게 참 재미있는데요, 언리얼과 유니티는 이 부분에서 구현의 차이가 있습니다.
아래 그림을 보면 같은 값을 입력했는데, 결과가 다른 것을 볼 수 있습니다.
즉 사용자 인터페이스적인 측면에서 회전과 스케일을 함께 반영할 것인가, 독립적으로 반영할 것인가의 차이로 생각하면 됩니다. 

책은 언리얼을 기준으로 만들었습니다.
[내적] 강의노트 문의
0
43
1
선형성 강의 노트 문의
0
36
1
github 코드 질문 + 서적 내용 - Transform 계층구조 쪽
0
93
2
예제 13_4 {VM행렬을 사용하여 평면의 방정식을 로컬 좌표로 생성하기
0
80
2
투영 관련하여 정말 궁금한 점이 있어 질문 드립니다.
0
173
2
반지름이 r인 경우에 cos^2θ+sin^2θ = 1 검증
0
343
2
강의자료 가환환에 대해서 질문드립니다
0
166
2
카메라의 로컬 벡터 구하기
0
157
2
삼각함수 관련 질문입니다.
0
582
2
"섹션 1 - 선형성 13:14 " 함수와 사상의 차이에 대해 헷갈리는 부분이 있습니다!
0
258
1
언리얼 회전행렬 순서
0
577
2
연산 순서는 오른쪽에서 왼쪽??
0
176
1
3차원 회전 변환 오일러 각
0
500
1
1강 19:53 환의공리
0
268
1
아핀 결합과 평면
0
243
1
리뷰에 대한 답글 다신 것 중에 소스 코드 공유 가능할까요?
0
224
1
책 p145 질문
0
225
1
선형 독립
0
271
2
선형성 질문
0
271
1
벡터 공간
0
262
1
강의자료 질문
0
283
2
실습 실행 오류 질문
0
254
1
행벡터와 열벡터의 차이
0
1125
1
게임 엔진 개발과 게임 개발 수학
0
383
1

