码迷,mamicode.com
首页 > 编程语言 > 详细

Unity3D开发(九):Unity3d流光效果

时间:2015-03-19 11:29:13      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

向原创致敬http://blog.csdn.net/onerain88/article/details/19939181

 

之前曾经注意过Material中纹理的属性都有Tiling和Offset,但没有深究过其用途,今天才知道竟然可以利用Offset做uv动画,从而完成各种有趣的动画,比如流光效果!

流过效果即通常一条高光光在物体上划过,模拟高光移动照射物体的效果,之前是使用Shader每帧传递一个Offset值,修改高光纹理采样的uv,从而达到其效果。这样的敝处在于需要自己实现Shader,简单的同一速度移动是很容易实现的,如果希望移动随度是变化的,则需要自己实现对速度曲线的解析(并传递给Shader)达到此目的。

没想到一直用来作位移动作,骨骼动作的Animation竟也有此功能!

下图中即为Animation对于物体的渲染方面可以做的操作(Unity 4.3版本和4.2略有不同)

 技术分享

 

在Shader部分,有两张纹理,分别是底图和高光图,这里需要注意的是如果要移动uv,则必须声明其ST属性,这样才可以通过内置方法TRANSFORM_TEX()计算uv偏移了,Shader如下

技术分享

 

这里只使用了一种很简单的算法计算最终的颜色值,即将高光覆盖底图颜色增加高光alpha倍,可根据需求设计计算方法!

 

在动画的关键帧中,根据美术需求设计曲线,如图

 技术分享

 技术分享

 

运行效果如图

 技术分享

技术分享

注意此方法不能应用于NGUI,因为NGUI其组织顶点方式与普通物体不同!

附件下载

Unity3D开发(九):Unity3d流光效果

标签:

原文地址:http://www.cnblogs.com/lindan929/p/4349848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!