Unity 之 ShaderGraph 实现超级炫酷的溶解效果入门级教程
前言
若你的工程还没有进行基础配置,请查看我的博文Unity 之 ShaderGraph入门使用详解,按照步骤操作完成配置即可,还能顺便学习一下基础操作流程哦~
本文手把手教你制作超级炫酷的溶解效果,入门级教程,还不快动手试试?有经验的童鞋可以直接跳到最后一步,按照图示搭建即可。
一,效果展示
老规矩,直接上效果图:(最高端的效果只需要最简单的模型呈现)
没学习Shader Graph之前:我靠😱 !这效果有点牛啊,那个大佬写的?
学习了Shader Graph之后:我去😒 !就这?岂不是有手就行?
二,原理介绍
通过主节点Alpha Clip Threshold
α剪辑阈值属性,来控制显示隐藏(取值范围0-1),意为Alpha
输入的大于“α剪辑阈值”则显示,否则隐藏。(Alpha:0-1代表白色-黑色)
创建Simple Noise
节点控制Alpha
,调节Simple Noise
节点Scale
属性控制大小,调整Alpha Clip Threshold
控制显示隐藏,效果如下:
怎么样?是不是觉得看完原理介绍就不用往下看了?
读者😈 :就这?😒 在此基础上随便加一个Time
时间节点控制一下自动溶解,再加一个Color
颜色节点修改下颜色不就实现了开篇时展示的效果,这么简单的制作也好意思单独拿出来水一篇文章?
尝试第一步,添加颜色节点,连接如下图,结果发现不但颜色没加上,预览图连球都显示不出来了🙃 …
尝试第二步,添加颜色节点,连接如下图,结果发现溶解效果是有颜色了,但是效果看起来还不如不加颜色了…
作者👿 :Emm…🙄 虽说我这是入门级文章,要是这么简单也不至于写这么长吧,如果你做到了第二步这个效果的话,距离成功就还差一点点了(使用Step
节点)要是明白了呢?就去尝试。表示看不懂什么意思的话,还是继续往下看吧~
三,实现效果
-
准备工作
在Project面板右键 --> Create --> Shader --> PBRGraph(我这里命名为“DissolvePBRGraph”),然后双击打开编辑器面板:
-
实现溶解
创建两个Vector 1
节点并将其设置为公开属性(选中节点右键选择“Convert To Property”)分别命名为"Width"和”NoiseScale“,然后创建Simple Noise
节点,和主节点连接情况如下:
-
添加颜色
创建Color
颜色节点的并将其设置为公开属性,创建Step
节点(作用:如果输入In的值大于或等于输入Edge的值,则返回 1,否则返回 0。)创建Multiply
乘法节点,连接情况如下:
PS:这里我将Color
颜色节点的模式调整为HDR是为了增加亮度,可按需修改。 -
自动溶解
创建Time
时间节点,为了效果我选择使用其Sine Time输出,所以为保证输出值一直为正数,添加Remap
节点控制其输出映射为0-1之间。然后添加Add
加法节点,用于连接时间节点和"Width"属性值,最终连接情况如下:
记得点击左上角的"Save Asset"保存一下哦~
四,使用示例
-
创建材质球并使用刚制作的Shader
这里提供一个快捷创建材质球的方法,鼠标选中我们保存的“DissolvePBRGraph”文件,然后右键创建材质球,这样我们创建出来的材质球,就自动使用这个Shader了。
-
在“Hierarchy”面板创建Sphere,并将刚刚创建的材质球赋值给它,得到结果如下:
-
若需要多个不同颜色不同效果的溶解效果,复制材质球修改公开属性即可。
五,完整图示
相关文章
- 教程-Delphi多线程数据库查询(ADO)
- 大数据应用之HBase数据插入性能优化实测教程
- open-flash-chart 教程例子实现
- 【OpenCV-Python】教程:3-4 平滑去噪,高斯平滑,均值滤波,中值滤波
- 【STM32H7的DSP教程】第49章 STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
- 【STM32F429的DSP教程】第49章 STM32F429的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
- 【STM32F407的DSP教程】第49章 STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
- 【STM32H7的DSP教程】第48章 STM32H7的中值滤波器实现,适合噪声和脉冲过滤(支持逐个数据的实时滤波)
- 【STM32H7的DSP教程】第45章 STM32H7的IIR高通滤波器实现(支持逐个数据的实时滤波)
- 【STM32F407的DSP教程】第45章 STM32F407的IIR高通滤波器实现(支持逐个数据的实时滤波)
- 【STM32F429的DSP教程】第44章 STM32F429的IIR低通滤波器实现(支持逐个数据的实时滤波)
- 【STM32H7教程】第33章 STM32H7的定时器应用之TIM1-TIM17的中断实现
- 【二代示波器教程】第15章 FreeRTOS操作系统版本二代示波器实现
- NeHe OpenGL教程 第二十八课:贝塞尔曲面
- SAP UI5 应用开发教程之九十 - 基于 OData V2 的 SAP UI5 List-Detail(列表-明细)布局的实现方式试读版
- SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
- Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现
- Docker 实战教程之从入门到提高 (八)
- SAP UI5 应用开发教程之六十六 - 基于 OData V4 的 SAP UI5 表格控件如何实现删除功能试读版
- 腾讯云低代码开发实战教程-布局的实现
- NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略
- Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
- ❤️【保姆级教程】从零到精通Git,CodeChina实战❤️
- [译]Vulkan教程(32)生成mipmap
- Linux下CMake简明教程(一)简单入门
- Ubuntu 编译安装ffmpeg,mplayer,x264全教程支持VDPAU(高清硬解)
- 从零实现Web框架Geo教程-中间件-05
- 【SPSS】频数分析和基本描述统计量详细操作教程(附实战案例)
- ❤️ C++ 用户输入讲解教程❤️
- C++的学习心得和知识总结(十七)|Visual Studios 2019配置游戏开发引擎HGE1.8教程