打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在unity中使用shader制作流光效果
流光,关键在于流动。
从画法的角度看,流光效果的成本很低,一张流光图,一张过滤图,一个渲染遍,即可实现效果。
但是效果很令人印象深刻。
你跟随着这篇东西去一步步操作,就能得到一些实际可用的Shader。
在开始写一个简单的流光效果之前,我们先普及一些shader的知识
这是一个新建的shader,我只是添加了一些注释
接下去,我们要在此基础上,一步步修改加上流光的效果。这里我们使用 surfaceshader,surfaceshader是unity的一个特别设计。
他是pixelshader的一部分,准确的说,前半部分。
Surfaceshader自动生成一个传统的vertexshader和pixelshader,根据你所指定的光照模型。
因为大部分的shader并不干涉光照模型,而只是在像素阶段做一些叠加、混合什么的。
Surfaceshader巧妙的让你可以只关心这一部分,学习的时候,只关注一部分,恰恰是个优点。
随便准备两张图片,一张底图,一张流光图
这里顺便给出一个快速制作流光图的ps操作方法。
1、弄一个黑色的背景
2、使用渐变工具
其中logo01是底图,无所谓用什么东西,最好选择一张比较暗的图,我们准备采用加法让他变亮,暗一点效果更明显。
我们想使用flow图的alpha通道,flow图延x方向运动,循环往复。至少要让flow图的一个半边全黑,因为加法全黑等于没加。
当使用这半边时完全不加亮
Flow贴图的设置这里要特别说明三个地方
  • Alpha from Grayscale 从图片的灰度生成alpha通道,直接制作alpha通道不直观,灰度图很直观。
    这个选项就是让你用一张直观的灰度图生成通道。
    你可以不用这个选项,而是自己提供一个有alpha通道的图片
  • wrap Mode当uv超出0 1 范围是的取值方法,我们需要让这张图循环往复,就是利用wrap mode repeat来实现的。
    必须使用这个选项
  • Format,因为这张图我们只需要一个通道,而且不适合压缩,没有比Alpha8更适合的存储格式了
    可选,只是为了节省内存容量


然后流光Shader 新手拈来,有注释的部分是在空shader基础上增加的
稍微解释一下原理,
把一张贴图的四个顶点的uv连成一个红框,是这样的。
把每个顶点的uv.x /2 是这样的
对uv.x 再加上同一个值是这样的
我们就是要用加上的这个值,对这个红框做动画
效果如下
拖动shader下面的拉杆就可以看到循环效果,用一个脚本去驱动这个参数做动画,就有流光效果了。
然后让我们做一点改变,动画这个东西不用脚本也能做。
因为shaderlab里面有默认参数_Time.y 他等于Time.timeSinceLevelLoad
经过Step02的修改,这个材质可以自动的动起来,不需要代码驱动。
然后我们可以再改一点点,让他变成透明的
也可以改成不受光影响的
附注:本人大部分出自《剑英陪你玩转图形学》,作者李剑英

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[ζ?随风去旅行] 【整理】unity3d优化总结篇 【续】
猫都能学会的Unity3D Shader入门指南(一)
Unity面试题(含答案)
【浅墨Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader...
【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
unity5.3 场景烘焙
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服