OpenGL

[OpenGL] lerp와 slerp

usingsystem 2024. 4. 18. 14:38
728x90

lerp와 slerp모두 부드러운 움직임을 표현하기 위해 사용된다.

하지만 lerp같은 경우 선형 보간으로 직선으로 보간하기 때문에 오일러각을 이용한 회전같은 부분에서 부드럽지 않는 문제가 발생한다.

따라서 quaternion을 사용하여 구면 선형 보간을 이용하면 회전과같은 애니메이션 처리에 더 부드럽게 처리가 가능하다.

 

lerp와 slerp를 구분하여 사용하는 이유는 각각의 보간 방법이 다른 종류의 데이터에 대해 적합하기 때문입니다.

  1. 선형 보간(lerp)의 용도:
    • 선형 보간은 두 값 사이를 직선으로 보간합니다. 따라서 주로 선형적인 변화를 필요로 하는 경우에 사용됩니다.
    • 위치, 크기, 색상 등과 같이 선형적인 특성을 갖는 데이터의 보간에 적합합니다.
    • 예를 들어, 오브젝트의 위치나 크기를 부드럽게 변화시키거나, 두 색상 사이를 부드럽게 변화시키는 데에 사용될 수 있습니다.
  2. 구면 선형 보간(slerp)의 용도:
    • 구면 선형 보간은 쿼터니언 사이의 회전을 부드럽게 보간합니다. 이는 회전에 대한 연산을 수행할 때 주로 사용됩니다.
    • 회전을 나타내는 쿼터니언은 직선 경로가 아닌 구면 경로로 이루어져 있기 때문에, 회전 간의 부드러운 전환을 위해 구면 선형 보간이 필요합니다.
    • 예를 들어, 카메라나 오브젝트의 회전을 부드럽게 변화시키거나, 두 개의 방향 벡터 사이를 부드럽게 회전시키는 데 사용될 수 있습니다.

따라서 데이터의 종류와 보간의 목적에 따라 lerp와 slerp를 선택하여 사용해야 합니다. 쿼터니언의 경우, 직선 경로가 아닌 구면 경로를 따르므로 lerp 대신 slerp를 사용하여 부드러운 회전을 보장할 수 있습니다.

728x90