其他
【程序猿】UnityShader学习笔记(二) 让贴图纹理动起来(河流瀑布特效、精灵序列帧实现)
大家好,我是Zander。这一章我们将使用纹理贴图实现动画、混合和真实特效来达到理想的效果。
纹理贴图可以使我们的着色器快速的实现逼真的效果,但是如果添加的纹理贴图过多,会非常影响游戏性能,特别是在移动设备上,需要将纹理贴图的数目降到最小,这样才能使应用程序加载更快,运行起来更加流畅。
下面带着大家用图片来实现一个河流的效果:
首先创建一个材质和一个新的着色器文件。为着色器添加属性如下:
然后在SubShader中修改CGPROGRAM部分的CG属性,添加变量便于访问
修改surf()函数,通过tex2D()函数来改变UV坐标,然后使用内置的_Time变量来实现动态纹理
所用的贴图
运行Unity,就可以看到河流的效果了
全部代码如下:
接下来 我们来进一步扩展 。来实现一个类似于2D序列帧动画的效果。
首先准备一张序列帧的图,
创建一个新的材质 和一个shader,在新的着色器中添加属性:
修改Surf()函数里面的内容:
里面用到的两个数学函数:
……
添加小编微信,发送“程序”
即可直接加入GAD程序猿交流基地
获取行业干货资讯,观看大牛分享直播
↓长按添加小编GAD-沫沫↓