查看: 6228|回复: 4
打印 上一主题 下一主题

[其他] 对unity3d中插值的小理解

[复制链接]
ZackD    

715

主题

22

听众

4万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
26224
精华
17

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-9-30 01:10:36 |只看该作者 |倒序浏览

[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..

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-9-30 09:24:16 |只看该作者
Thanks for sharing !
回复

使用道具 举报

1

主题

6

听众

1117

积分

助理设计师

Rank: 4

纳金币
267
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-9-30 09:52:08 |只看该作者
线性插值其实就是个公式:(1-n)*x + n*y = result。改变了N的值就实现了线性插值。
回复

使用道具 举报

0

主题

2

听众

1346

积分

助理设计师

Rank: 4

纳金币
505
精华
0
地板
发表于 2014-9-30 10:58:46 |只看该作者
谢谢ZackD指导...顶一顶
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2014-10-2 05:42:30 |只看该作者
Thanks for this
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-11 20:35 , Processed in 0.293655 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部