Game Development, 게임개발/개발

Linear Interpolation, 선형 보간법

게임이 더 좋아 2021. 3. 21. 04:51
반응형
728x170

 

이 방법을 이전에 오브젝트를 움직이게 할 때 써먹었다.

하지만 움직이게 하는 것 뿐만 아니라 모든 것에 쓸 수 있기에 한 번 더 복습하고 가려고 한다.

 

알아보자

 


 

어떠한 value 2개를 가지고 그 사이를 선형보간법을 이용하는 것이다.

 

Lerp (X, Y, t)

 

함수의 원형은 이렇게 생겼다.

X,Y 가 value가 되는 것이고 t가 0~1 의 값을 가진다.

 

 


 

 

?? 뭐야 보간이 뭔데?

 

보간이란 알고 있는 값으로, 알려진 값 2개의 사이에 위치한 값을 추정하는 것을 말한다.

즉, 알고 있는 값으로 근사 함수를 만들어 값을 추정하는 것이다.

아래와 같은 식으로 추정한다.

 

 

 


 

그럼 t는 왜필요한건데??

 

t가 d1,d2값을 정해준다. 

x1,x2의 거리를 1로 보고 t가 비율을 정하는 것이다.

 

 

 

쉽게 말하면 그라데이션의 중간값을 어디다 둘 것이냐???

가 t 값이 결정하는 것이다.

 

 

t값이 오른쪽에 치우쳐 있다면 x2로 갈 수록 흰색으로 바뀌는 정도가 빨라지겠고

t값이 왼쪽에 치우쳐 있다면 x2가 흰색으로 바뀌는 정도가 느려지겠다.

 

이해가능한가?

 


 

 

어디다 쓰느냐??

값이 바뀔 때 쓴다.

 

예를 들어 빛이 처음엔 엄청 강했다가 서서히 줄어드는데

반대로 생각하면 엄청나게 눈부시다가.. 서서히 원래 색을 알아 볼 수 있게 되니까. 

특히 Time.deltaTime을 이용해서 시간에 따라 t 값이 바뀌게 이용할 수 있다.

light.intensity = Mathf.Lerp(light.intensity, 8f, 0.5f * Time.deltaTime);

이런 식으로 쓸 데가 정말 많다.

 

 

 

반응형
그리드형