Unity中 ShaderGraph 实现超级炫酷的溶解效果入门级教程
作者:陈言必行 发布时间:2021-11-15 01:48:08
前言
若你的工程还没有进行基础配置,请查看我的博文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,并将刚刚创建的材质球赋值给它,得到结果如下:
若需要多个不同颜色不同效果的溶解效果,复制材质球修改公开属性即可。
五,完整图示
来源:https://blog.csdn.net/Czhenya/article/details/118957757


猜你喜欢
- 前言代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。看到很多小伙伴在为数据库生成实体类发愁,现分享给
- Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都会有各自的用途,以及创建和销毁的时间,有的区
- 概述Spring boot 中的 @Conditional 注解是一个不太常用到的注解,但确实非常的有用,我们知道 Spring Boot
- Javaweb获取表单数据的几种方式一、通过键值对的形式获取表单数据getParameter(String name):通过key,返回一个
- idea中ssm框架的编码问题介绍在idea中编码问题分为几个部分:1 tomcat服务器编码2 页面编码3 控制台编码4 操作系统编码在实
- 一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题1.selectById的问题(1).表的主键列名
- 用Flutter实现弹幕功能,轻松实现虎牙、斗鱼的弹幕效果。先来一张效果图:实现原理弹幕的实现原理非常简单,即将一条弹幕从左侧平移到右侧,当
- c#创建圆形类,其中包括set,get方法using System;using System.Collections.Generic;usi
- 本文给大家分享Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现,具体代码如下所示:import android.app
- 这两天学习了使用Path绘制贝塞尔曲线相关,然后自己动手做了一个类似QQ未读消息可拖拽的小气泡,效果图如下:最终效果图接下来一步一步的实现整
- 本文实例为大家分享了Android仿大众点评星星评分控件的具体代码,供大家参考,具体内容如下话不多说,直接上代码,这里采用的是自定Viewp
- 前言Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些AP
- 请求路径匹配路由在spring中,当一个请求过来的时候会做路径匹配,下面我们就从源码层面分析一下路径匹配。示例:@RequestMappin
- 最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中。发现点击H5中 input type="
- 前言这个东西有啥用,好玩?确实, 好玩归好玩,其实很有使用场景。可以自己选则一些业务节点触发这个机器人助手的消息推送;简单举例:1. 有人给
- 文章描述这个程序也记不清是什么时候写的了,犹记得那时我还很年轻,偶然从网上看到了这样一个类似的标题(AI五子棋的实现),进去后看到那个是ja
- 大多数情况下你不需要访问者模式,但当一旦需要访问者模式时,那就是真的需要它了,这是设计模式创始人的原话。可以看出应用场景比较少,但需要它的时
- 前言今天是2021LOL全球总决赛,一直不被大家看好的EDG冲到了决赛对战韩国队的DK,可以说EDG面对如此强大的对手,想赢是比较难的,为了
- import java.io.FileNotFoundException;import java.io.FileOutputStream;i
- 周末这天手痒,正好没事干,想着写一个分页的例子出来给大家分享一下。这个案例分前端和后台两部分,前端使用面向对象的方式写的,里面用到了一些回调