공부/C#

짐벌락(gimbal lock)이란?

셩잇님 2023. 3. 6. 13:16
반응형

 

 

1. 짐벌락(gimbal lock)이란?

짐벌 락은 3D 그래픽에서 발생하는 현상으로, 특히 오일러 각을 사용하여 3차원 공간에서 물체의 방향을 나타낼 때 발생합니다. 오일러 각은 세 개의 축에 대한 물체의 회전을 고정된 순서로 나타내는 세 개의 각도 집합입니다. 그러나 물체의 방향이 특정 구성에 도달하면 한 자유도를 잃게 되어 물체의 방향이 특정 구성에 "고정"된 것처럼 보일 수 있습니다. 이를 짐벌 락이라고 합니다.

 

 

짐벌 락은 세 개의 회전축 중 두 개의 회전축이 정렬될 때 발생하며, 시스템의 복잡성을 효과적으로 줄이고 2차원 시스템처럼 작동하도록 합니다. 이 구성에서는 세 번째 축이 무의미해지고 시스템의 자유도가 한 단계 낮아집니다. 그 결과 물체의 방향이 더 이상 세 개의 오일러 각으로 고유하게 설명될 수 없으며 회전이 예측 불가능하거나 불안정한 것처럼 보일 수 있습니다

짐벌 락을 시각화하는 한 가지 방법은 각각 자체 축을 중심으로 회전할 수 있는 세 개의 중첩된 링으로 구성된 기계식 짐벌 시스템을 상상하는 것입니다. 가장 안쪽과 가장 바깥쪽 링이 정렬되면 가운데 링은 독립적으로 회전할 수 있는 기능을 잃게 되고 시스템은 사실상 2차원이 됩니다.

짐벌 락은 렌더링된 출력에서 예기치 않은 동작을 유발할 수 있기 때문에 컴퓨터 그래픽과 3D 애니메이션에서 특히 문제가 됩니다. 짐벌 락을 방지하기 위해 많은 3D 그래픽 시스템에서는 오일러 각도에서 발생하는 문제 없이 3D 회전을 표현할 수 있는 쿼터니언 회전을 사용합니다. 또한 일부 3D 그래픽 엔진은 짐벌 락이 발생하면 이를 자동으로 감지하고 보정하는 툴을 제공합니다.

요약하면 짐벌 락은 3D 그래픽에서 오일러 각을 사용하여 오브젝트의 방향을 나타낼 때 발생하는 현상입니다. 세 개의 회전축 중 두 개의 회전축이 정렬될 때 발생하며, 그 결과 렌더링된 출력에서 자유도 1도가 손실되고 예측할 수 없는 동작이 발생합니다. 짐벌 락을 방지하기 위해 많은 3D 그래픽 시스템에서는 오일러 각도 대신 쿼터니언 회전을 사용합니다.

 

 

 

반응형

'공부 > C#' 카테고리의 다른 글

쿼터니언(Quaternions)이란?  (0) 2023.03.06
오일러 각(EulerAngles)이란?  (0) 2023.03.06
Yield 키워드란?  (0) 2023.03.06
코루틴(coroutines)이란?  (0) 2023.03.06
이벤트(event)란?  (0) 2023.03.06