inflearn logo
강의

講義

知識共有

ゲームエンジンを支えるゲーム数学

로컬 <-> 월드 트랜스폼 변환 시 모델링 행렬을 바로 곱하지 않는 이유

解決済みの質問

285

ahtks20003410

投稿した質問数 21

0

안녕하세요, 해당 강의를 듣고 난 후 조금 더 수학 지식을 쌓기 위해 '이득우의 게임수학' 책으로 공부하고 있는 취준생입니다.

제가 수학 지식이 얇아서 이해에 어려운 부분이 있어 질문 드립니다.

619p. ~ 624p. 에 걸쳐서

  1. 부모 월드 + 내 로컬을 이용한 내 월드 트랜스폼 구하기

  2. 부모 월드 + 내 월드를 이용한 내 로컬 트랜스폼 구하기 내용이 있는데,

여기서 왜 Scale, Rotation, Translation을 따로 구하는지 궁금합니다.

 

제가 생각을 해보았는데,

모델링 행렬끼리 곱해서 구해버리면 T * R * S * T * R * S 순서로 곱해져서,

Rotation과 Scale의 경우가 제대로 계산되지 않기 때문인 것인가요?

ex) 1의 경우 내 로컬 Transform의 Scale은 부모 Scale 내 로컬 Scale, Rotation은 부모 Quat * 내 로컬 Quat 이어야 하는데,

내 월드 트랜스폼을 구하기 위해 각 트랜스폼에서 구한 모델링 행렬끼리 곱해서 구해버리면 중간에 다른 연산이 들어간 상태에서 Scale, Rotation이 구해진다?

 

 

게임수학

回答 1

2

ideugu

안녕하세요 거의 막바지까지 다 읽으셨네요. 축하드립니다.
질문 내용의 수준을 보면 꽤나 책을 자세히 읽으신 것 같습니다. 저자로써 기쁘네요.
하나의 트랜스폼에 대해 대응하는 행렬 데이터를 별도로 보관하는 것은 추가 메모리 공간 혹은 계산이 요구됩니다.
( 계산된 행렬을 캐싱하는 방법도 있습니다. )

책에서는 행렬없이 트랜스폼 속성만 가지고 간편하게 계산 가능한 식을 만들어 사용하고 있습니다.
하지만 책과 다르게 트랜스폼마다 대응하는 행렬을 사용해 행렬연산을 하는 방법도 있습니다.
이게 참 재미있는데요, 언리얼과 유니티는 이 부분에서 구현의 차이가 있습니다.
아래 그림을 보면 같은 값을 입력했는데, 결과가 다른 것을 볼 수 있습니다.
즉 사용자 인터페이스적인 측면에서 회전과 스케일을 함께 반영할 것인가, 독립적으로 반영할 것인가의 차이로 생각하면 됩니다.

imageimage
책은 언리얼을 기준으로 만들었습니다.

0

ahtks20003410

원하는 방식으로 구현이 가능하군요! 답변 감사드립니다.

[내적] 강의노트 문의

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