위키득계정 ↗
과학

구면 선형 보간

구면 선형 보간과학
영문명
Spherical linear interpolation
약칭
SLERP
기본 대상
단위 구면 위의 두 점
주요 조건
서로 정반대인 끝점은 경로 선택 필요
구면 선형 보간은 두 단위 방향 사이를 구면의 대원호를 따라 일정한 각도 속도로 잇는 보간 방법이다. 좌표를 직선으로 섞는 보간과 달리 중간 결과도 구면 위에 놓이도록 구성한다.

직선 대신 원호를 따른다

두 단위 벡터 a,b의 사이각을 θ라고 하자. 0<θ<π에서 보간점은 sin((1−t)θ)/sinθ를 a에 곱한 값과 sin(tθ)/sinθ를 b에 곱한 값의 합으로 나타낼 수 있다. t가 0이면 a, 1이면 b다. t를 같은 간격으로 증가시키면 선택한 원호에서 각도도 같은 간격으로 진행한다.

중간점의 길이

a=(1,0), b=(0,1)일 때 좌표를 절반씩 섞으면 (0.5,0.5)가 되고 길이는 1/√2다. 구면 선형 보간의 t=0.5 결과는 (1/√2,1/√2)로 길이가 1이며 45도 방향을 가리킨다. 직선 보간 결과를 다시 단위 길이로 정규화해도 이 중간점은 같지만, 다른 t에서도 각도 진행 속도까지 같아지는 것은 아니다.

끝점이 가까울 때와 정반대일 때

두 점이 거의 같으면 θ와 sinθ가 모두 작아져 공식 그대로의 계산이 수치적으로 불안정할 수 있다. 일치하는 두 점에서는 일정한 점을 반환하는 식의 처리가 가능하다. 반대로 정반대의 점에서는 어느 대원을 따라갈지 끝점만으로 결정할 수 없다. 평면의 원에서는 두 반원 경로가 있고, 삼차원 구면에서는 여러 대원을 선택할 수 있어 추가 기준이 필요하다.

방향 보간과 회전 보간

구면 위 위치나 방향을 보간하는 일과 물체의 삼차원 자세 전체를 보간하는 일은 구분해야 한다. 방향 하나만으로는 그 방향 축 주위의 회전까지 정해지지 않는다. 단위 사원수를 사용하는 회전 보간에서는 같은 회전을 나타내는 부호가 반대인 사원수도 고려해야 한다. 따라서 방향 벡터에 쓰던 절차를 별도 해석 없이 모든 회전 자료에 그대로 적용하지 않는다.

관련 문서

구면 보로노이 다이어그램 / 벡터 / 단위 벡터 / 사원수 / 회전 행렬 / 선형 보간