Unity3D开发(九):Unity3d流光效果
2014-02-25 23:12
344 查看
游戏开发论坛:Hello Game
游戏开发群:201276069
之前曾经注意过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其组织顶点方式与普通物体不同!
附件下载
游戏开发群:201276069
之前曾经注意过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----FlappyBird剖析-附源码
- Unity3D笔记 Collect
- Unity学习(十二): 平滑差值
- unity ------- input
- [unity3d]NGUI屏幕自适应
- [unity3d]NGUI屏幕自适应
- Unity3d 碰撞检测
- [Unity3d]安卓无法加载assetbundle的问题
- [Unity3d]安卓无法加载assetbundle的问题
- Unity3D基础学习之AssetBundle 资源包创建与加载
- 多个版本Unity4.x并存的解决方案
- Unity导出android关于路径问题总结
- Unity3d之MonoBehavior的各个函数的执行顺序,回调,顺序,次数等
- Unity GUI 中文显示
- [unity3d]再次修改socket聊天,完美的服务器端
- Unity3D中Mathf.SmoothDamp函数使用与Mathf 数学运算(C#)
- Unity3D选择本地图片加载显示
- Unity3D: JavaScript->C# 或 C#->JavaScript的调用
- 设置Ubuntu 12.04 Unity返回到经典Gnome桌面 及面板调整相关
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(27)-权限管理系统-分配用户给角色