查看原文
其他

【程序猿】UnityShader学习笔记(二) 让贴图纹理动起来(河流瀑布特效、精灵序列帧实现)

2017-02-06 游戏蛮牛 Gad-腾讯游戏开发者平台

  大家好,我是Zander。这一章我们将使用纹理贴图实现动画、混合和真实特效来达到理想的效果。


  纹理贴图可以使我们的着色器快速的实现逼真的效果,但是如果添加的纹理贴图过多,会非常影响游戏性能,特别是在移动设备上,需要将纹理贴图的数目降到最小,这样才能使应用程序加载更快,运行起来更加流畅。


  下面带着大家用图片来实现一个河流的效果:



  首先创建一个材质和一个新的着色器文件。为着色器添加属性如下:



  然后在SubShader中修改CGPROGRAM部分的CG属性,添加变量便于访问



  修改surf()函数,通过tex2D()函数来改变UV坐标,然后使用内置的_Time变量来实现动态纹理



  所用的贴图



  运行Unity,就可以看到河流的效果了


  全部代码如下:



  接下来 我们来进一步扩展 。来实现一个类似于2D序列帧动画的效果。



  首先准备一张序列帧的图,



  创建一个新的材质 和一个shader,在新的着色器中添加属性:



  修改Surf()函数里面的内容:



  里面用到的两个数学函数:






点击一下立即阅读近期热文


Unity3D中实现帧同步 - Part 1

手把手教你做3D扫雷:完结篇

Unity3D下的XLua技术内幕(一)

……


添加小编微信,发送“程序

即可直接加入GAD程序猿交流基地

获取行业干货资讯,观看大牛分享直播

↓长按添加小编GAD-沫沫


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存