美文网首页Unity探路营
Unity2018新功能抢鲜 | ShaderGraph实战之全

Unity2018新功能抢鲜 | ShaderGraph实战之全

作者: 洪智 | 来源:发表于2018-04-20 08:09 被阅读230次

    本文首发于“洪流学堂”微信公众号。
    洪流学堂,让你学Unity快人几步

    洪流学堂公众号回复节点,获取ShaderGraph节点详解PDF文件(带目录)。

    上次我们讲了ShaderGraph的配置,创建,编辑和在材质球上的使用,这节课我们通过一个实例来看一下如何用ShaderGraph快速创建一个全息效果。

    全息效果

    这种全息效果是通过贴图的Offset随时间滚动产生的,来看下在ShaderGraph中如何制作吧。

    1、创建一个PBR Graph

    2、我们会用到一张全息的纹理贴图

    下载此贴图使用

    3、创建一个Sample Texture 2D的Node,节点的Texture属性选择刚才下载的贴图

    4、要让这张贴图滚动起来,要使用到Tiling And Offset节点,创建一个这个节点。将Tiling And Offset节点的Output和Sample Texture 2D的UV属性连接起来。现在你如果修改Tiling And Offset节点的Offset的Y值,就会看到贴图能向下滚动了!

    Tiling And Offset节点

    5、那么如何让Offset自动变化呢,我们可以使用内置的Time节点。
    创建Time节点并将Time(1)连接到Offset,这时候你会看到贴图会自动滚动了。

    注意:这样其实会让Offset的X,Y同时滚动,由于贴图在X轴上是重复的,所以看不出来

    6、这时候如果将Sample Texture 2D的输出RGBA(4)连接到PBR Master的节点Emission(自发光)上,就能看到效果了

    第一次效果

    但是这效果显然还不能达到我们的理想的效果。

    7、我们想通过一个参数来控制滚动的速度。

    1. 添加一个Vector1的参数,命名为Speed,默认值设置0.1.
    2. 将这个参数拖到图中,创建一个Multiply(乘法)节点,然后将Time节点和Speed属性节点相乘,Output拖到Offset,如下如所示。
    可以看到滚动的速度变慢了

    8、我们还想能控制这个全息投影的颜色。

    1. 添加一个颜色的属性
    2. 我们想让贴图中越黑色的部分颜色越深,白色的部分颜色越浅。
      将颜色属性和Sample Texture 2D的输出RGBA(4)相乘,这样颜色会有一个渐变的效果。
    3. 将Multiply的Out拖到PBR Master节点的Albedo和Emission上

    9、由于我们的贴图是一张RGB的灰度图,并没有带透明通道,所以我们需要自己来将透明通道做出来。
    我们可以使用RGB的任意一个通道作为alpha值。同时需要将PBR Master的Surface设置为Transparent。

    注意不能使用A通道,因为贴图本身并没有alpha通道,所以alpha通道的值会全是1。

    10、最后我们还可以让这个全息效果更好一点:目前的效果比最开始的效果条纹会细一些,可以通过添加一个One Minus节点来解决(One Minus的作用的:输出结果为1-输入)

    这样我们就大功告成了!就是文章开头的那个效果。

    小结

    本文通过全息效果的ShaderGraph,涵盖了输入属性、多个节点的知识。
    后续会有更多的实例教程,关注洪流学堂公众号第一时间获取。

    洪流学堂公众号回复节点,获取ShaderGraph节点详解PDF文件(带目录)。

    你有没有饱受shader折磨的同学?你可以把今天的内容分享给他,或许你能帮到他。

    本文的源码可以通过洪流学堂公众号回复 全息 获取。


    Unity:世界领先的游戏,VR/AR引擎
    《郑洪智的Unity2018课》,倾尽我8年的开发经验,结合最新的Unity2018,带你从入门到精通。
    目前预售拼团,5.5折!

    相关文章

      网友评论

      • tinenka:老师,第5步里我把时间拖到Offset上就没有波浪效果,变成白茫茫的一片了。
        洪智:贴图wrap mode设置为repeat试下
      • f8a2fba5f8c8:请问老师:"One Minus"这个函数是为了解决什么问题?
        洪智:@Ayoung68 第10步中写了
      • f8a2fba5f8c8:支持!~希望大神能多出教程!~

      本文标题:Unity2018新功能抢鲜 | ShaderGraph实战之全

      本文链接:https://www.haomeiwen.com/subject/mzqvkftx.html