[면접기술] 선형 보간법

윤여준·2022년 6월 23일
0

면접기술

목록 보기
5/5
post-custom-banner

선형 보간(Lerp)

  • 정의
    선형 보간법(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)

  • 정의
    선형 보간과 다 같지만 직선거리가 아닌 곡선거리에 따라 계산하는 방법이다.
  • 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만 가능

쌍선형 보간(Bilinear)

  • A, B를 보간하여 M을 얻고, C, D를 보간하여 N을 얻은 후 M과 N을 보간하여 P의 위치를 얻는 방식이다.

삼선형 보간(Trilinear)

  • M, N을 보간하여 R을 얻고 U, V을 보간하여 S을 얻은 후 S와 N을 보간하여 P의 위치를 얻는 방식이다.
profile
항상 발전하는 개발자!!
post-custom-banner

0개의 댓글