今天学习了3D游戏中线性插值的相关知识。
在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值。所以对插值的理解是必需的。(比如摄像机跟随主角)。
在unity3d中用函数Lerp()来在两者之间插值,两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间,其函数原型如下:
static Vector3 Lerp(Vector3 from, Vector3 to, float t);
Material.Lerp 插值 (在两个材质之间插值)
Vector2.Lerp 插值 (两个向量之间的线性插值)
Vector3.Lerp 插值 (3D空間中两个向量之间的线性插值)
Mathf.Lerp 插值 (基于浮点数t返回a到b之间的插值)
Color.Lerp 插值 (通过t在颜色a和b之间插值)
首先还是先从数学的角度来看一下什么是插值运算:
线性插值法(linear interpolation) : 线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。
假设我们已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到两点式直线方程:
假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x