inflearn logo
강의

講義

知識共有

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

언리얼 회전행렬 순서

577

작성자 없음

投稿した質問数 0

0

언리얼 엔진 소스 코드를 살펴보다 회전이동 행렬 코드에서 헷갈리는 부분이 있어 질문드립니다.

책에선 언리얼 엔진은 z->x->y순서로 회전행렬을 곱한다고 되어있는데, 그러면 언리얼은 행 기준 행렬을 사용하기 때문에 z(yaw) * x(roll) * y(pitch) -> 순서로 곱해야 하는데 이 결과가 언리얼 엔진 소스코드의 결과와 달라서 너무 혼동이 옵니다..

언리얼 엔진 회전행렬.PNG저 결과가 나오려면 x(roll)->y(pitch)->z(yaw)순서로 곱해야하고, x,y,z축 회전행렬이 언리얼 xyz축 회전행렬.PNG

이렇게 돼야 저 결과와 같아지는데, x축과 y축 회전 행렬이 행 기준 행렬이 아닌 열 기준 행렬로 돼있고,

z축 회전 행렬만이 행 기준 행렬로 돼있어 너무 혼동이 옵니다..

DX는 z->x->y순서로 곱해야 하고, 모두 행 기준 행렬인걸로 알고 있는데, 저 코드는 왜 다르게 나오는 건가요??

 

 

게임수학 언리얼엔진 회전행렬

回答 2

0

ideugu

지금 외부라서 확인이 어려운데 축은 아마도 언리얼 좌표계 축이 아니고 책에서 설정한 좌표계로 설명했을 겁니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 송찬호님.

오일러 각을 활용한 3차원 회전 변환 과정에서 혼란스러운 부분에 대해 설명드리겠습니다.

오일러 각을 통해 회전 변환을 수행할 때 두 가지가 중요합니다:
1. 회전의 순서
2. 회전 행렬의 기준 (행렬이 열 기준인지 행 기준인지)

질문에서 언급한 언리얼 엔진의 회전 순서에 대한 문제는 많은 개발자들이 헷갈려하는 부분입니다. 언리얼 엔진에서 회전 변환을 수행하는 방식은 실제 코드를 분석해보면 명확하게 이해할 수 있습니다.

의문점 해결을 위한 몇 가지 참고 답변

게임 엔진을 지탱하는 게임 수학

이 답변에서는 언리얼 엔진에서 사용하는 오일러 각 회전 순서와 관련된 문제를 다루고 있습니다. 아래 URL에서 해당 내용을 확인할 수 있습니다:
오일러 각과 회전 변환에 대한 설명

사용된 코드에 담긴 원리가 궁금합니다

이 답변에서는 오일러 각, 회전 행렬 및 벡터 변환 등에 대한 간단한 설명을 제공하고 있습니다. 또한, 언리얼 엔진의 특정 코드가 어떻게 동작하는지에 대한 설명도 포함되어 있습니다:
언리얼 엔진 회전 연산과 관계된 코드 설명

간단한 설명 요약

오일러 각 회전 순서와 기준

  1. 오일러 각 순서: 언리얼 엔진에서는 일반적으로 Z(Yaw) -> X(Roll) -> Y(Pitch) 순으로 회전이 적용됩니다. 이는 고정된 좌표계를 기준으로 합니다.
  2. 행렬 기준: 행 기준 행렬과 열 기준 행렬은 행렬의 곱셈 순서를 다르게 정의합니다. 언리얼 엔진은 행 기준 행렬을 사용합니다. 그러나 이 점에서 혼동이 발생할 수 있습니다. 언리얼 엔진 내의 수학적 정의와 실제 동작 방식의 차이를 정확히 이해하는 것이 중요합니다.

회전 행렬의 설정

회전 행렬은 각 축을 기준으로 회전 변환을 정의합니다. 각 회전 행렬은 아래와 같이 정의됩니다:
- X축 회전 - Roll: 주로 앞뒤로의 회전
- Y축 회전 - Pitch: 주로 위아래로의 회전
- Z축 회전 - Yaw: 주로 좌우로의 회전

오일러 각 회전 순서에 따라 행렬을 곱하면, 각 축을 기준으로 정의된 회전 변환을 쉽게 적용할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

[내적] 강의노트 문의

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

581

2

"섹션 1 - 선형성 13:14 " 함수와 사상의 차이에 대해 헷갈리는 부분이 있습니다!

0

258

1

연산 순서는 오른쪽에서 왼쪽??

0

176

1

3차원 회전 변환 오일러 각

0

500

1

1강 19:53 환의공리

0

268

1

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

0

285

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