Unity-ShaderGraph 边缘发光与卡通火焰

Unity-ShaderGraph 边缘发光与卡通火焰

  • 节点分析
  • 边缘发光特效
  • 火焰特效
  • 总结:

节点分析

Fresnel Effect:菲涅尔效应 ,节点包含了三个输入,分别是表面法线的方向,表面视角的方向以及一个浮点数Power。计算公式如下
Out = pow((1.0 - saturate(dot(normalize(Normal), normalize(ViewDir)))), Power);
就是视角方向和物体表面方向夹角越大 输出的值越大,所以中心显示黑色 外圈显示白色
Remap:重映射,将输入的值映射到另一个范围之中
UV:u 从左到右 从0-1 ,v从下到上 从0-1
Unity-ShaderGraph 边缘发光与卡通火焰_第1张图片
Distance:两点之间 的距离
Clamp: 把输入的值固定到一个范围之中
Lerp: 三个输入 A B T ,T相当于控制AB占的百分比
Unity-ShaderGraph 边缘发光与卡通火焰_第2张图片
**Voronoi **:泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是一组由连接两邻点线段的垂直平分线组成的连续多边形组成。一个泰森多边形内的任一点到构成该多边形的控制点的距离小于到其他多边形控制点的距离。
Unity-ShaderGraph 边缘发光与卡通火焰_第3张图片

边缘发光特效

Unity-ShaderGraph 边缘发光与卡通火焰_第4张图片
实现效果为:
Unity-ShaderGraph 边缘发光与卡通火焰_第5张图片

火焰特效

Unity-ShaderGraph 边缘发光与卡通火焰_第6张图片
Unity-ShaderGraph 边缘发光与卡通火焰_第7张图片
Unity-ShaderGraph 边缘发光与卡通火焰_第8张图片
Unity-ShaderGraph 边缘发光与卡通火焰_第9张图片
实现效果如下:
Unity-ShaderGraph 边缘发光与卡通火焰_第10张图片

总结:

发光特效:使用菲涅尔节点与Color节点相乘输出到Emission节点中,其中为了让物体有一个渐变的过程添加了Time节点,防止物体完全变黑把sin 的值从[-1,1]映射到[0.2,1]上。
火焰特效:使用两个Voronoi节点 让他们以不同的速度不同的大小向上偏移,这样面片上就会出现类似奶酪形状的图片,因为面片是正方形 而火焰是上端是比较类似那种尖锐的所以 使用UV节点和二维节点通过Distance节点获得一个有一个黑点的节点 在映射到反向就获得了椭圆形节点 椭圆是白色 外部是黑色这样面片的上半部分就会被剪成椭圆形, 因为火焰的根部不应该出现镂空所以利用刚才映射后的节点变成自身的几次方后与Voronoi节点最终输出节点相加 最后因为火焰顶部和底部的颜色不一样 我们要用两个颜色通过插值获得最终颜色 如果想要做卡通风格 就不需要中间的两个颜色的渐变颜色 通过Step节点二向化变成只有两种颜色就行了。

你可能感兴趣的:(ShaderGraph)