수학/이득우의 게임 수학

오일러 각

monstro 2026. 2. 11. 17:18
728x90
반응형

- 개요

오일러 각을 사용하여 3차원 회전을 지정하는 유니티 엔진 - 사진 출처 : https://unity.com/kr/releases/2019-3/editor-tools

 

오일러 각3차원 공간에서 물체가 놓인 방향3개의 각을 사용하여 표시하는 방법이다

직관적으로 이해하기 쉬어 3차원 공간을 사용하는 프로그램에서 자주 사용된다

 

표준기저벡터를 사용한 오일러 각의 표현

 

게임엔진에서 오일러 각을 사용하여 물체의 방향을 표시할 때는 표준기저벡터를 사용한다

따라서 오일러 각표준기저벡터를 중심으로 회전하는 각의 크기로 지정된다

최종적으로 세 표준기저벡터를 중심으로 회전하는 각을 모으면 위와 같이 3차원 벡터로 표현할 수 있다

이때 각각의 각의 값은 실수이다

 

- 오일러 각의 표현 - Yaw / Roll / Pitch

오른손 법칙의 Yaw / Roll / Pitch 구성 - 사진 출처 : https://simple.wikipedia.org/wiki/Pitch,_yaw,_and_roll

 

3개의 실수로 정의된 오일러 각의 정보 모든 프로그램에서 범용적으로 사용하는 것은 문제가 존재한다

소프트웨어마다 X / Y / Z축의 용도가 다르기 때문인데, 언리얼 엔진과 유니티엔진처럼 차이가 존재한다

따라서 문제를 해결하기 위해 X / Y / Z축 대신에 회전의 움직임으로 회전 동작을 구분하고 을 지정한다

 

프로젝트에서의 Yaw / Roll / Pich의 좌표 축 대응

 

표준기저벡터를 축으로 하는 회전의 움직임방향에 따라 Yaw / Roll / Pitch로 표현한다

Yaw / Roll / Pitch의 움직임으로 오일러 각을 지정하면 서로 다른 좌표계를 사용하더라도 쉽게 변환할 수 있다

 

- 프로젝트에서의 Yaw / Roll / Pitch 구현

프로젝트에서의 Vector3를 대체하는 Rotator 구조체

 

프로젝트에서는 Vector3 대신 Rotator 구조체를 사용하여 오일러 각을 사용한다

구성은 위와 같다

  • Clamp 함수 : 오일러 각의 회전 값을 사용 사용하기 편리하게 재구성
  • GetAxisClampedValue 함수 : 각도의 값0°~360°의 범위로 변경
  • Yaw / Roll / Pitch 멤버변수 : 오일러 각을 구성하는 Yaw / Roll / Pitch로 모두 각도법을 사용하여 관리

 

- 오일러 각의 수학적 표현

오일러 각을 구성하는 3개의 회전행렬의 표현

 

오일러 각표준기저벡터를 중심으로 진행되는 세 번의 연속적인 회전을 의미한다

예를 들어 X축 회전YZ 평면의 회전을 의미하는데, 이 경우 X값은 변하지 않고 오직 Y축과 Z축의 값만 변경된다

위의 원리를 이용하여 X / Y / Z축에 대한 회전행렬 Rx / Ry / Rz는 위와 같이 설계할 수 있다

이때 3차원 공간에서는 X -> Y -> Z -> X -> Y의 순서로 세 축이 순환하여

Y축에 직교하는 평면ZX 평면이라는 점에 주의해야 한다

728x90
반응형

'수학 > 이득우의 게임 수학' 카테고리의 다른 글

3차원 모델행렬  (0) 2026.02.25
3차원 회전행렬의 유도  (0) 2026.02.25
3차원 공간의 트랜스폼  (0) 2026.02.11
3차원 공간의 설계  (0) 2026.02.04
카메라 시스템  (0) 2026.01.28