- 정의
선형 보간법(Linear interpolation)은 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선거리에 따라 선형적으로 계산하는 방법이다.- 해석
어떤 수치에서 어떤수치로 값이 변경되는데 한번에 변경되지 않고 부드럽게 변경되게 하고싶을 때, 사용하면 된다.- 유니티에서의 선형보간
- Lerp(a, b, f)
a : 위치 1
b : 위치 2
f : 두 지점사이의 중간 값(0~1사이)
public GameObject Player;
Vector3 targetPos = Vector3(5, 5, 5);
void Awake()
{
Player.transform.position = Vector3.zero;
}
void Update()
{
Player.tranform.position = Vector3.Lerp(Player.transform.position, targetPos, Time.deltaTime);
}
게임오브젝트 Player(0, 0, 0)가 target의 지점인 (5, 5, 5)로 이동을 하는데, 유니티의 deltaTime마다의 움직임을 보여줄 수 있습니다. 즉, 한순간에 띡하고 움직이는게 아닌 부드러운 움직임을 보여줄 수 있는 기능이 있습니다.
- 정의
선형 보간과 다 같지만 직선거리가 아닌 곡선거리에 따라 계산하는 방법이다.
- Slerp(a, b, f)
a : 위치 1
b : 위치 2
f : 두 지점사이의 중간 값(0~1사이)
public GameObject Player;
Vector3 targetPos = Vector3(5, 5, 5);
void Awake()
{
Player.transform.position = Vector3.zero;
}
void Update()
{
Player.tranform.position = Vector3.Slerp(Player.transform.position, targetPos, Time.deltaTime);
}
Slerp를 사용할 시, Lerp와는 다르게 구면 선형 보간한 후 deltaTime에 맞는 위치를 반환해줄 것이다.
- Lerp,Slerp가 가능한 자료형
- Mathf : 하나의 숫자를 보간, Lerp만 가능
- Vector2 : 2개의 숫자를 보간, Lerp만 가능
- Vector3 : 3개의 숫자를 보간
- Quarernion : 4개의 숫자를 보간
- Color : 색의 보간, Lerp만 가능
- A, B를 보간하여 M을 얻고, C, D를 보간하여 N을 얻은 후 M과 N을 보간하여 P의 위치를 얻는 방식이다.
- M, N을 보간하여 R을 얻고 U, V을 보간하여 S을 얻은 후 S와 N을 보간하여 P의 위치를 얻는 방식이다.