先看效果,制作版本:unity2019.4.2

制作2D图片效果,不需要用到光照信息,所以创建ShaderGraph时选用Unlit Graph。
图片一般都会有透明通道,记得修改Unlit Master的Surface为Transparent。

要实现此效果主要思路

  1. 扭曲效果基本是通过UV的偏移达到效果的,偏移要随机化才能达到扭曲,可使用噪声Noise来实现随机化。
  2. 要能有动起来的效果,要用到Time,随时间进行变化。

参数定义

效果有用到图片,扭曲有速度控制和偏移的量值,故定义3个变量。一个Texture2D和2个Vector1。

UGUI中的Image中已经有贴图,所以想要我们的Shader能依赖到Image的贴图,需要定义的Texture2D的Reference名称为_MainTex,默认图片Shader为此名称。

显示图片


红色圈中部分是顶点颜色,在UGUI中的Image里的color对应此处。最终颜色是颜色的混合,采用乘法得到。(颜色值数值范围为0-1,混合不是用加法)

随机偏移

随机使用节点SimpleNoise(Scale越大,随机粒度越精细),通过当前UV采集到偏移量,传入到offset中,即可。注:Graph中提供了Tiling And Offset进行处理,不需要自己再进行拼接。


现在会发现波动的时候往一个方向偏移,不是原始位置为中心偏移,这是因为图片颜色值为0-1,数值总是为正的,需要将偏移值转为正负变化的。

转换【0,1】区间到【-1,1】区间,只需要使用公式2x-1,即可达到目的

时间变化与最终效果

现在偏移不会随时间变化,加上时间值和速度控制,这样最终效果就完成了。

展望

本效果基本能满足一些特效上的要求,但也有一些可以改进的。
1、UV的移动方向是固定的,不能变化
2、波动偏移时两轴数值是一样的,可以做一些变化
3、可以只偏移某一部分区域,达到更炫的效果

unity Shader Graph实现2D图片扭曲波纹效果相关推荐

  1. Unity Shader - 入门级 - 火烧 2D 旗帜 的溶解效果

    文章目录 需求 思路 效果 Ramp 纹理 Shader 集成到 UGUI Shader 中 Project 美术提的需求比较简单,但是之前没整过,当作记录一丢丢效果集中 需求 从图片的 下方往上 燃 ...

  2. Unity Shader Graph 制作Rim Light边缘光效果

    效果图: 模型为Asset Store资源商店中免费资源Robot Kyle机器人 实现原理: 通过法线方向和视线方向的夹角来判断点是否处于边缘,从而给其增加边缘光,视线方向和法线方向垂直时,则该点在 ...

  3. Unity中用shader graph制作一个简单的传送门效果

    Unity中用shader graph制作一个简单的传送门效果 一.配置渲染管线 1.通过菜单"Asset" --> "Create" --> &q ...

  4. Unity 2D图片的3D效果(1)——阴影

    项目为方便编辑地图,使用的是Unity自带的Tilemap功能.因为使用的是俯视视角,拼好第一个地图后发现2D图片展现的效果太平了,地面和障碍物很难分辨.所以才有了"把2d图片展现出3d效果 ...

  5. Unity Shader Graph 使用安装步骤缺失材质球,以及场景原本物体材质球丢失问题解决

    Unity Shader Graph 使用安装步骤,以及原本物体材质球丢失问题 我是用的版本是2019.3.9版本的,仅供参考. 第1步:Window-PackageManager-点击All Pac ...

  6. Unity Shader - 实现类似镜面反射、水面扰动效果

    前几天,家里出了一些问题,搞得心情很不好,面试我也取消了. 唉,反正那个伤心啊,不过,昨天处理好了. 所以说啊,家和万事兴. 加油加油!!! 所以心情好了,我又写博客了. 另外说一下:图形我今年201 ...

  7. Unity Shader - GrabPass 实现武器热扭曲拖尾效果

    文章目录 先来看看效果 实现思路 Unity带的TrailRender组件 编写脚本实现 CSharp Shader 参数 注意性能 还可以优化 总结 Project 以前龙之谷喜欢选战士,帅气. 战 ...

  8. Unity Shader Graph(二)Dissolve Effect

    此篇文章记录Dissolve Effect(溶解特效)的制作过程 软件环境 Unity 2018.1.2f1 Packages: Lightweight Render Pipeline 1.1.11 ...

  9. Unity Shader Graph实现模型任意方向剖切(学习笔记/五毛钱特效)

    使用Shader Graph:Unlit Master 使用Position获取物体Object的空间坐标信息. 使用Split拆分物体的空间坐标信息,比如拆分为x.y.z. 使用Split拆分后的x ...

最新文章

  1. 人工智能AI正从这五个方面改变公司
  2. U-BOOT介绍以及disk模块源码分析
  3. 手把手带你撸一把springsecurity框架源码中的认证流程
  4. 算法-排序-插入排序
  5. Openjudge-计算概论(A)-放苹果
  6. 栅格布局一般怎么用_建筑混凝土色差大怎么办?用这种方法处理,一般都看不出来...
  7. c++ 暂停功能_2020.10.16撸友简报:NC资本澄清;去嗨皮打赏交易
  8. iPhone的OpenGL ES的资源- 18,你必须知道 !
  9. Hadoop权威指南(中文版,第2版)【分享】
  10. glibc的几个有用的处理二进制位的内置函数(转)
  11. 用java编写猜数字游戏
  12. 条形码类型和标准指南:一维、二维条码符号
  13. C++17之std::apply与std::make_from_tuple
  14. 网页全屏的代码实现要不要了解一下(最全)
  15. xxl-job集群原理
  16. ICPC 昆明 单挑打铁记
  17. 性能测试--03企业级性能测试与分析
  18. 《刻意练习》读书笔记
  19. rabbitMQ无法访问web管理页面
  20. 净利率远低同行,诺威健康如何在CRO跑道上争排位?

热门文章

  1. Vue前端项目自适应布局
  2. Revit2020版正式发布,全新功能大盘点!
  3. STC15W4K32S4 系列 T0定时器输出时钟
  4. 自己写出strcat函数
  5. 在markdown中打出上标、下标、上、下角标、特殊符号
  6. 字幕转换纯文字:SRT转TXT最快的方法
  7. 江西建筑安全员B证怎么考多选题库
  8. android 6g 有必要吗,追根究底:实测安卓手机6G运存是否有必要
  9. 同步和异步有什么区别?
  10. C++常用数学运算(待完结)