纳金网

标题: 对unity3d中插值的小理解 [打印本页]

作者: ZackD    时间: 2014-9-30 01:10
标题: 对unity3d中插值的小理解

[color=rgb(85, 85, 85) !important]unity3d中要实现各种平滑效果,插值是不可避免的。但之前一直不太理解插值,上午研究了下,插值是种数学运算。
下面以float temp=Mathf.Lerp(float  from,float  to,float t)为例说明。

Temp=from+(to-from)*t;
Mathf.Lerp这个函数每调用一次就执行一次。
举个例子:
float DURATION=2.5f;
Public void Update()
{
If(Time.time>DURATION)
   Destroy(game);
Float proportion=(Time.time/DURATION) //这个可以确保proportion0-1之间,因为之前的If(Time.time>DURATION)已经确保了在销毁前Time.time不会超过DURATION
Renderer.material.color.a=Mathf.Lerp(1,0,proportion); //随着Time.time的逐渐增加,proportion的数值也会不断增大。每次调用Mathf.Lerp所返回的数值也会不断减小。
}

其他的插值还有:
Mathf.Lerp
Color.Lerp
Vector3.Lerp
Quaternion.Lerp
etc..


作者: HIDEOKOJIMA    时间: 2014-9-30 09:24
Thanks for sharing !
作者: leanchen89    时间: 2014-9-30 09:52
线性插值其实就是个公式:(1-n)*x + n*y = result。改变了N的值就实现了线性插值。
作者: oelongeo    时间: 2014-9-30 10:58
谢谢ZackD指导...顶一顶
作者: hyui    时间: 2014-10-2 05:42
Thanks for this




欢迎光临 纳金网 (http://c-www.narkii.com/club/) Powered by Discuz! X2.5