Shader信息提示:
这篇文章介绍的是我们网站官方提供的,Unity VfxGraph粒子系统的【vfxCase_V_Base】、【vfxCase_V_Fresnel】、【vfxCase_V_AirDistor】、【vfxCase_V_Flip】着色器参数详解,这几个Shader名中都带了“_V_”,意思是VfxGraph粒子系统的简称。并且如下面视频,这些Shader都是通过官方ShaderGraph可视化制作的。
vfxCase_V_Base参数详解
如下图红框vfxCase_V_Base着色器,绿框展示了它的参数。
![图片[1]-Unity VfxGraph特效源文件的Shader详解-游戏特效案例库](https://www.vfxcase.com/wp-content/uploads/Unity/Base/Case_ShaderDetail_VfxGraph/VfxBase/界面_VfxBase_.png)
如下面案例,<主贴图>坑位可以放入红框里带Alpha通道的贴图,和不带Alpha通道的贴图。
如下面案例,<副贴图Sec>坑位放入红框带Alpha通道和不带Alpha通道贴图的效果是不一样的,这样和主贴图配合使用,实现更丰富的效果。
如下面案例,<遮罩Mask贴图>坑位是用<不带Alpha通道>的黑白贴图模拟遮罩效果,这样你通过黑白贴图就能脑补、预判出遮罩大概的效果。
如下面案例,<溶解Dissolve贴图>坑位是用<不带Alpha通道>的黑白贴图模拟溶解效果,这样你通过黑白贴图就能脑补、预判出溶解大概的效果。
如下面案例,<扭曲Twist贴图>坑位是用<不带Alpha通道>的黑白贴图扭曲其它贴图,这样你通过黑白贴图就能脑补、预判出扭曲大概的效果。
如下面案例,<顶点动画VerTexAnim贴图>坑位是用<不带Alpha通道>的黑白贴图控制顶点的偏移量,这样你通过黑白贴图就能脑补、预判出顶点动画大概的效果。
如下面案例,激活<菲尼尔遮罩FresnelMask>后,模型的边就虚化了,并且还可以激活Invert反向。
vfxCase_V_Base更新日志V_1.1
待整理
vfxCase_V_Fresnel参数详解
![图片[2]-Unity VfxGraph特效源文件的Shader详解-游戏特效案例库](https://www.vfxcase.com/wp-content/uploads/Unity/Base/Case_ShaderDetail_VfxGraph/VfxFresnel/界面_Fresnel菲涅尔参数.png)
vfxCase_V_AirDistor参数详解
![图片[3]-Unity VfxGraph特效源文件的Shader详解-游戏特效案例库](https://www.vfxcase.com/wp-content/uploads/Unity/Base/Case_ShaderDetail_VfxGraph/VfxAirDistor/界面_AirDis热扰动.png)
vfxCase_V_Flip参数详解
![图片[4]-Unity VfxGraph特效源文件的Shader详解-游戏特效案例库](https://www.vfxcase.com/wp-content/uploads/Unity/Base/Case_ShaderDetail_VfxGraph/vfxCaseFlip/界面_Flip.jpg)
如下图是Flip着色器的基础案例,案例默认发射了一个标有A-B-C-D字母的贴图,把绿框的X和Y参数设置成2×2,就可以把贴图分成四块,参数Z就表示当前播放哪张序列图,连上一个曲线值就可以播放序列图了。
如下面是Flip着色器的<副贴图Sec>案例,能看到<副贴图Sec>坑位分别放入带Alpha通道和不带Alpha通道贴图的效果是不一样的。并且主贴图和副贴图都能设置序列图。
如下图是<副贴图Sec>的Bridge亮度参数、Power对比参数的作用。
Flip着色器的其它参数,如Tiling平铺、Offset偏移、Rotate朝向等等参数,在上面的其它Shader中都有解释。
着色器通用参数的详解
如下面案例,点击X框后就会弹出Y框通用参数,啥叫通用参数?就是案例里用到的【vfxCase_VfxBase】、【vfxCase_ParFresnel】、【vfxCase_VfxAirDistor】这些Shader都有的参数。
如下面视频案例,用vfxCase_VfxBase着色器演示了Surface Type表面类型选项,然后分别放入两张带Alpha通道的Png贴图做测试,其中:
- Opaque类型用于模拟<没有透明>的实体材质,所以<不会>显示贴图的Alpha通道效果。
- Transparent类型用于模拟<有透明>的半透明材质,所以<会>显示贴图的Alpha通道效果。做特效的时候几乎都是用这个选项。
只有上一个参数<Surface Type表面类型>为Transparent时,才有该Blending Mode选项,其作用如下面视频:
- Alpha模式,用于模拟前面材质遮住后面材质的效果。
- Premultiply模式,程序员和TA在做一些比较特殊的效果时才会用到的模式,我们做特效的时候很少用到。
- Additive模式,用于模拟当前材质与后面材质相加变亮的效果。
- Multiply模式,用于模拟当前材质与后面材质相乘变暗的效果。
如下面视频案例,它的作用是控制渲染模型的哪一面。其中:
- Both是渲染模型的正面和背面。
- Front是只渲染模型的正面。
- Back是只渲染模型的背面。
如下面视频案例,是Render Face的另一个案例。
如下面视频案例,在渲染Transparent半透明物体,且Render Face为Both时,模型的背面会显示到前面来,这时开启<Depth Write深度写入>,就能正确显示模型物体的前后关系了。其中:
- ForceEnabled选项是<开启>Depth Write。
- ForceDisabled和Auto选项都是<关闭>Depth Write。
上面Depth Write选项针对的是自身物体的前后深度,而这里的Depth Test选项针对的是自身与其它物体的深度前后关系。首先,这里的<深度>指的是什么?它指的是颜色像素距离摄像机的远近,像素距离摄像机越近,那么这个像素的深度越小。像素距离摄像机越远,那么这个像素的深度越大。这时我们再看下面视频案例:
- 当白球默认的Depth Test的是LEqual<小于或等于>,意思是当前白球像素深度值<小于或等于>后面的灰色背景深度值时,那么白球像素就会被渲染出来。
- 当把白球的Depth Test换成Greater<大于>时,意思是当前白球像素的深度值<大于>后面的灰色背景时,白球像素才会被渲染出来,否则就不被渲染出来。而此时白球深度明显是小于灰色背景,所以此时白球像素没被渲染出来。
- 当然,我们这里只是做一个简单的案例解释,因为我们特效师几乎不怎么用这个选项,只有TA和程序员在做一些特殊效果时才会用到这个选项,所以到此为止,不深究。我们保持默认的LEqual即可。
如下面视频案例,它的作用是把贴图透明度比较低的部分裁剪掉,透明度比较高的部分都保留,所以就会形成下面这种硬边的效果,Opaque类型和Transparent类型都可以使用。
- 注意,该功能只在使用<vfxCase_VfxBase>着色器时才有效。
暂无评论内容