关于Lerp插值的基本原理和在Unity中的应用
2017-03-22 12:35
1571 查看
插值这个东西,对于很多新手来说,只是停留在使用的阶段,知道什么时候用,但是运算机制却不甚了解。
最近发现,很多新人有这么一种想法:已经封装好的算法,都是很高深的,我们直接用就好了,没有必要去了解它的实现方式。
这种想法是不对的。很多东西,只因为你是站在门外的,所以你看不透彻,当你迈进门里面的时候,就会觉得不过如此。
啰嗦了很多,就是希望看到这篇的帖子的刚出道的新手们,能有一个打破砂锅问到底的精深。
高深之所以高深,只是因为你还没有理解。
言归正传,说一下Lerp的实现:
float Lerp(float a,float b,float t)
return a+(b-a)*t;
有没有大跌眼镜!!当然,我写的这个方法只是解释一下它的基本原理。
unity中提供的与Lerp有关的常用API有下面几个:
Mathf.Lerp(float a, float b,
float t)
Mathf.LerpAngle(float a, float b,
float t)
Vector3.Lerp(Vector3 a,Vector3 b, float t)
所有插值的原理都是一样的,只是针对特定的应用目标,加入了其他的一些内容。比如角度插值LerpAngle,它只是帮助你封装了角度范围的控制。
这里有必要点一下,不管是Math还是Vector里面的Lerp的返回值value一定是a<=value<=b的。但是他们也都有另一个不限制范围的Lerp方法,LerpUnclamped()。
在网上发现一些东西
这个回答的举例是错误的,从他错误的举例就可以推断答题人并没有真正理解Lerp的计算。碰到这种情况,要自己试验一下,不要看到别人说什么就是什么。如果你试验过,那你一定会对结果产生怀疑的。可能有些人会觉得,差不多是一秒,差不多,程序这东西,差一点就是天壤之别。你看到的差不多,并不是你以为的误差,那就是个错误。
最近发现,很多新人有这么一种想法:已经封装好的算法,都是很高深的,我们直接用就好了,没有必要去了解它的实现方式。
这种想法是不对的。很多东西,只因为你是站在门外的,所以你看不透彻,当你迈进门里面的时候,就会觉得不过如此。
啰嗦了很多,就是希望看到这篇的帖子的刚出道的新手们,能有一个打破砂锅问到底的精深。
高深之所以高深,只是因为你还没有理解。
言归正传,说一下Lerp的实现:
float Lerp(float a,float b,float t)
return a+(b-a)*t;
有没有大跌眼镜!!当然,我写的这个方法只是解释一下它的基本原理。
unity中提供的与Lerp有关的常用API有下面几个:
Mathf.Lerp(float a, float b,
float t)
Mathf.LerpAngle(float a, float b,
float t)
Vector3.Lerp(Vector3 a,Vector3 b, float t)
所有插值的原理都是一样的,只是针对特定的应用目标,加入了其他的一些内容。比如角度插值LerpAngle,它只是帮助你封装了角度范围的控制。
这里有必要点一下,不管是Math还是Vector里面的Lerp的返回值value一定是a<=value<=b的。但是他们也都有另一个不限制范围的Lerp方法,LerpUnclamped()。
在网上发现一些东西
这个回答的举例是错误的,从他错误的举例就可以推断答题人并没有真正理解Lerp的计算。碰到这种情况,要自己试验一下,不要看到别人说什么就是什么。如果你试验过,那你一定会对结果产生怀疑的。可能有些人会觉得,差不多是一秒,差不多,程序这东西,差一点就是天壤之别。你看到的差不多,并不是你以为的误差,那就是个错误。
相关文章推荐
- unity 关于Rotation和Quaternion的一些问题(欧拉角与四元数,lerp与slerp)
- 关于unity中Network组件的简单应用
- 关于Unity导出的Android应用在小米、联想等机型上崩溃的问题
- UnityShader屏幕后处理-边缘检测,经典的插值lerp
- 关于Unity中的框架层 和 应用层
- Unity-----关于委托、事件与泛型单例模式的应用
- Unity 插值运算 Vector3.Lerp(transform.position, targetPos, smoothing * Time.deltaTime);
- 关于Unity打包Android平台应用,访问不到StreamingAssets中的资源问题
- 关于“企业应用”
- 关于arp.exe的一点应用
- 关于.NET WEB应用系统UI层的一些思考
- 关于asp.net开发B/S应用系统的思索和讨论
- 关于.net环境中应用DB2数据库的问题
- 在C语言中关于scanf函数的高级应用
- 两篇关于MCU的嵌入式应用的文章【ZZ】
- Creating Complete JDBC Applications 关于JDBC应用的核心技术
- 关于《我从教育网收集了200多篇关于组态软件和人机界面软件开发、应用的文章,想要的朋友给我发邮件呀》的再次申明
- 关于O/R Mapping,在很久以前我就考虑过,这才是数据库的终极应用!
- 关于通用信息管理类应用软件框架的一点想法(导入不成功,只能考一篇一篇的转咯)
- 一个关于在VB.NET中应用超级解霸的问题