在Unity2018中使用ShaderGraph(二)(V客学院知识分享)

在上一期中,向大家介绍了如何在Unity中配置ShaderGraph的使用环境,本期来为大家介绍一下使用ShaderGraph创建一个边缘泛光+溶解的效果

在开始使用ShaderGraph之前得先配置好使用环境,忘记的童鞋请点这里(ShaderGraph配置)

配置好后,我们就可以创建自己的Shader了,这里我们引入了Unity官方资源《Stealth》中的一个机器人敌人(隐藏了帽子的)为范例作为操作对象,该资源比较老了,原本使用的是Legacy shader 中的Diffuse的着色器,导入后会显示成品红色,将工程中的材质升级为

Lightweight Materials 之后,默认显示为下面的模样,系统为我们自动创建了一系列适用于Lightingweight Pipeline 的材质,并使用了其中的一个,不过我们今天并不需要这些材质,而只是需要使用到导入的贴图.

V客学院

首先  我们在Project视图总右键创建一个新的shader: Create->Shader->PBR Graph,至于什么是PBR,大家可以到搜索引擎中去搜索了解下,篇幅有限就不做过多介绍.

创建时给shader取一个自己喜好的名字,双击打开这个Shader,打开后会出现如下的界面

Shader Graph采用的是图形化的Shader编程,那些复杂的数据处理,都已经被编写成对应功能的模块并以节点的形式展示,我们只需要选择对用功能的节点并向节点中添加相应的数据即可得到处理后的数据,将处理后的数据输入到最终节点即可让材质显示最终的效果.以下我们就来通过添加节点来一点一点实现我们想要的效果:

在创建节点之前,我们先在预览区右键选择一个自定义的显示形状,讲默认的球形显示咱们的机器人模型,以方便观察预览效果,更改模型后,我们可以看到一个机器人的白模,这个想必大家都很熟悉--缺少相应贴图

开始创建节点

 1 在面板区域 点+号添加一个Texture2D属性,注意图片上的说明文字

选中图中绿点的位置,按住鼠标左键将该属性拖动至ShaderGraph编辑窗口的空白处,就会在空白处创建一个名为Property的节点,该节点有一个输出点.ShaderGraph编辑窗口的空白处Create Node->搜索框输入2D->Sample Texture2D 节点,点住Property右侧小红点,拖动鼠标至Sample Texture2D节点的Texture(T2)左侧的红点处,就可以完成连线,此步操作的意义为给Sample Texture2D填充来自Property中_MainTex的贴图,完成此步操作后,我们可以看到Sample Texture2D下方显示了贴图的预览

在这里大家可以仔细观察下节点的样式,每种节点会分为输入端和输出端,单个节点会具备输入或者输出其中的一个或者两个,输入和输出点的颜色代表着其相应可支持的数据类型,只有数据类型相互支持的输入和输出端之间才能连线,具体的意义请参看官方文档或者自行摸索

将Sample Texture2D的数据直接输入到最终节点的Albedo(3)端,可以看到材质已经能显示机器人的正常贴图了,接下来了我们添加更多的节点以实现更多的效果

2 添加边缘泛光的效果

边缘泛光的效果其实就是对菲尼尔反射的模拟,ShaderGraph中为我们提供了这样一个节点,叫做Fresnel Effect,右键空白处创建该节点,并用该节点与Sample Texture2D的输出结果通过Add节点相加,再相加之后的数据给到最终节点的Albedo(3)端,即可出现初步的边缘泛光效果,调节Fresnel Effect左侧的输入端X(Power)的值,可以改变泛光的显示效果

为显示效果更加明显,我们将泛光的效果换一个颜色,并增加Silder调节泛光效果的,添加一个颜色节点,让颜色节点与Fresnel Effect节点输出结果通过Multiply节点进行相乘,相乘后的结果再重新与Sample Texture2D的输出相加,得到如下的效果,为产生更为明显的效果,颜色的模式可以选择HDR模式

到此,边缘泛光的效果已经基本完成了,还不错吧.

3 添加溶解效果

添加溶解效果的思路是采用一张噪声图,通过噪声图上黑色部分和白色部分来影响最终节点输入端的Alpha输入,并通过一个0~1之间的值来改变AlphaClipThreshold来调节噪声图黑白部分的影响,噪声图为一张只有黑白两色的图片,越接近黑色,该区域的值越接近于0,反之越接近于1,当AlphaClipThreshold的值为0时,效果为不溶解,当该值开始向1靠近时.噪声图上与该值接近的部分会开始出现裁切作用,在模型的贴图上表现为噪声图上黑色的部分开始出现溶解消失的效果

4 添加模型对应的法线贴图并应用材质,将_Maintex(主贴图), _Normaltex(法线贴图),Fresnel_Power(菲涅尔反射强度),_Dissolve(溶解程度)制成暴露属性,点击左上角Save Asset保存Shader.以下为最终的ShaderGraph节点图 

 

返回Project视图,选中该Shader右键创建材质,选中新创建的材质,在Inspector面板可看到如下属性

填充对应贴图,将机器人模型拖入场景,并将材质替换为新创建的材质,调节Dissolve的值,即可让模型显示对应的效果

(PHP开发、web前端、UI设计、VR开发专业培训机构--V客IT学院版权所有,转载请注明出处,谢谢合作!)

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值