Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- UELOG
- C++최적화
- 약참조
- 크리티컬섹션
- 자료구조
- 델리게이트
- dataasset
- 프로그래머스
- UML관련
- C++
- map
- enumasByue
- 알고리즘
- stl
- UE4 커스텀로그
- UE_LOG
- 람다
- 람다사용정렬
- 언리얼엔진구조체
- unorder_map
- 애셋로드
- BFS
- 강참조
- moreeffectiveC++
- 정렬
- 언리얼가비지컬렉터
- 선택정렬
- 정렬알고리즘
- 스마트포인터
- 데이터애셋
Archives
- Today
- Total
기억을 위한 기록들
오일러각 (Euler Angles)에 관하여 본문
- 3차원 공간 상의 물체가 놓인 방향을 표시하기 위해 스위스 수학자 오일러가 소개한 방법.
장점
- x,y,z 각각의 축을 기준으로 얼만큼 회전할 것인지만 알면된다.
- 회전 변환 행렬은 최소한 9개(3x3 행렬)의 값을 필요로 하는 반면 오일러 각을 이용하면 단 3개의 값으로 충분하여 메모리 공간을 훨씬 적게 쓰는 장점이 있다. 회전 변환 행렬을 보고 어떤 축을 기준으로 얼마만큼 회전을 했는지 알기가 쉽지 않지만, 오일러 각은 바로 알 수 있으므로 가장 직관적인 방향 표현법이다.
- 만약 좌표계에서 한 축만을 기준으로 회전하는 변환들을 조합하는 경우라면 단순히 그축에 해당하는 회전각들을 모두 더하면 된다. 이런 경우는 회전의 곱셈보다 훨씬 빠르다.
단점
- 대표적인건 *짐벌락 ( 어떤 한축에 대해 물리적으로 더 이상 회전할 수 없는 상태, 즉 해당 축에 대한 회전력을 잃은 상태)
- 세가지 각으로 실제로 벡터나 점을 회전 변환을 수행하는 것이 행렬에 비해 굉장히 비효율적
- 오일러 각들의 값만을 가지고 있다면 변환마다 매번 sin,cos 값들을 계산해야해서 결국엔 저장 해야하는 값들은 9개이다.
요약 :
그래서 보통 게임에서 표현은 오일러 각(x,y,z)로 표현만 하고 실제 계산은 회전행렬을 통해 이루어진다.
* 짐벌락 현상 참고 :
https://www.youtube.com/watch?v=zc8b2Jo7mno&ab_channel=GuerrillaCG
'그래픽스(Graphics) > Game Math' 카테고리의 다른 글
[3D 게임수학] 5. 아핀공간(Affine Space) (0) | 2021.03.17 |
---|---|
라디안(radian)이란? (0) | 2021.03.05 |
[3D 게임수학] 4. 선형 변환(Linear Transformation) (0) | 2021.03.01 |
평균/분산/표춘편차 구하기/ O(1)/ C++ (0) | 2021.03.01 |
[3D 게임수학] 3. 행렬(Matrix) (0) | 2021.02.25 |