本文主要是介绍Unity之ShaderGraph如何实现全息投影效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
今天我们来实现一个全息投影的效果,如下所示:
主要节点
Position:提供对网格顶点或片段的Position 的访问,具体取决于节点所属图形部分的有效着色器阶段。使用Space下拉参数选择输出值的坐标空间。
Time:提供对着色器中各种时间参数的访问。
Fresnel Effect:菲涅尔效应是根据视角不同表面上反射率不同的效应,当接近掠射角时,会反射更多的光。菲涅尔效应节点通过计算表面法线和视图方向之间的角度来近似这一点。这个角度越宽,返回值就越大。这种效果通常用于实现边缘照明,在许多艺术风格中都很常见。
Fraction:返回输入In的小数(或小数)部分;大于或等于 0 且小于 1。
Power:返回输入A的结果的输入B次方。
Add:返回两个输入值A和B的总和。(叠加后颜色会更加明亮)
原理
我们通过时间和顶点相加可以得到一个跟随时间变化的值,然后我们通过Fraction可以得到一个条纹样式,修改Repeate的值为25,我们可以得到一个密集的条纹,我们把它和菲尼尔相乘可以让他边缘更亮,中心变透的密集条纹,我们作为身体的流动主色。然后我们再让另一个条纹乘以数值0.62,得到一个扫描的条纹,然后两个条纹相加,然后在和MainTexture相叠加,就可以得到整体效果了,然后在通过菲尼尔设置一下材质的Alpha透明度,整体效果就更通透了。
完整节点
这篇关于Unity之ShaderGraph如何实现全息投影效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!