Hallo,大家好。我是机智的桃子
第一次发帖,写的不好请大佬们见谅。
今天来分享shader方面的小知识,首先半透明transparent材质是特效师最常用的材质了,
但半透明材质用到复杂一点的模型上时就很尴尬,它会把模型内部以及背面部分都重叠显示在一起,看上去非常的混乱。这是因为transparent材质渲染没有先后之分,两个transparent材质叠在一起是看不出前后顺序的,那么怎么解决这个问题呢。
我们拿菲尼尔材质来举例,可以看到普通的半透菲尼尔材质有非常明显的渲染重叠混乱。
现在我们引入另一个pass,右键新创建一个无光源不受光shader。
打开新建的shader不需要连节点,只需要自定义命名shader里pass项目栏,以及修改渲染类型和渲染队列,然后左上角保存。
下一步回到菲尼尔里调用新建的无光源shader,找到Additional Use Passes选项卡 复制pass材质的路径并加上Pass项目栏的自定义命名,命名必须大写(如图所示)。
保存后就能看到神奇的一幕,渲染重叠消失了 ,这里其实是我们用pass模拟了一个深度测试,把内部以及背面部分剔除了。
[apoyl_aliyunvideo]237[/apoyl_aliyunvideo]
到这一步就算大功告成了,但光秃秃一个菲尼尔看上去很单调,我就手痒加了两层效果;一层Noise的流动和一层往上的扫光,模拟一下全息扫描效果。
当然这两层效果是可以在材质球上通过“if_Noise”按钮控制开启和关闭的。
今天的分享到这里结束了,感谢大家看到结尾,最后是扫描效果视频,以及shader源文件奉上 大家自取。
[apoyl_aliyunvideo]238[/apoyl_aliyunvideo]
unity2019.4.9
|
全部评论19