UE4---Flowmap燃烧溶解笔记

GIF 2021-1-4 19-06-03

由于时间有点紧张,所以就没有去细化效果,有点难看说实话哈哈哈

参考文章

https://zhuanlan.zhihu.com/p/222500848

https://deepspacebanana.github.io/deepspacebanana.github.io/blog/shader/art/unreal%20engine/Flowmapped-Burn-Shader

FlowMap

FlowMap其实就是UV动画,常用于制作流动效果,只有RG通道,存储的是流动的方向,下面就是存储了顺时针流动方向的Flowmap

image-20210104143838673

处理FlowMap

FlowMap导入UE4需要取消勾选sRGB,压缩设置为向量置换贴图,否则会因为压缩出像质量损失问题

image-20210104144114189

由于图片无法保存负数信息,所以将信息保存到0-1之间,所以我们需要手动去还原信息,与法线贴图的方法一致

image-20210104144429412

我们还要反转R通道才能得到正确的方向,当然如果你在FlowPainter勾选了FilpR那就不用在UE4里再次翻转了

image-20210104144534648

因为要动起来,所以我们需要将刚才得到的偏移方向与时间相乘,为了让Time更好的控制偏移,我们需要将Time连接Frac节点,这样得到在0-1不断循环的区间

image-20210104145600411

可以看到有很明显的割裂感,不是gif录制造成的嗷

GIF 2021-1-4 14-56-31

这是因为Frac(Time)这里过度不顺滑

image-20210104150347088

所以我们需要两段UV动画进行缓和,达到比较平缓的过度,让Time+0.5就可以得到第二段动画

image-20210104155023312

image-20210104155037627

现在需要将两端UV动画进行Lerp淡入淡出,将Frac之后的Time缩放到-1到1再绝对值,既可以得到下面函数表示,完美过渡了0-1的割裂感

img

GIF 2021-1-4 15-54-29

这里原作者的flowmap感觉是为了更好的在UE4中控制燃烧的流向,所以FlowMap感觉差不多是同一个方向,所最终材质蓝图如下

image-20210104162452311

SphereMask

利用SphereMask来决定然后燃烧范围,通过材质参数集来传递SphereMask的中心以及半径

image-20210104163901721

我们将中心设置为0,0,0,可以看到黑色区域随着半径的增大而增大

GIF 2021-1-4 16-40-32

最后与上面得到FlowMap灰度图进行相减,并限制范围在0-1

image-20210104164144436

得到一个有燃烧流向的Mask图

GIF 2021-1-4 16-42-36

按照道理来说,燃烧是以中心点开始往四周燃烧的,如果我们不将SphereMask乘2将得到下面的结果,可以看到与球体中心距离较远的地方都变黑了,这是不正常的,所以要乘2

image-20210104164733054

边缘发光和烧焦

利用Distance节点来获取边缘Mask

image-20210104171030049

得到如下图

image-20210104171112042

原理分析,首先我们得到SphereMask与FlowMap处理过后Mask贴图颜色分析如下

image-20210104171438318

那么我们将图连接Distance 0.45,中心得到的颜色则是abs(0 - 0.45),边缘得到的颜色是abs(0.45-0.45),为燃烧区域则是abs(1-0.45),结果如下

image-20210104171738730

接下来我们确定边缘Mask的范围,并缩放到0-1区间,比如我们除以0.1,那么0-0.1边缘区间就会缩放为0-1,而其他不相干区域就会变为大于1,到时候连接1-节点,就可以得到真正的边缘Mask

image-20210104172436798

烧焦会比辉光更前一些,所以Distance为0.5

image-20210104173443524

image-20210104173500963

Editor模式下运行ActorTick方法

只需要重载Actor的ShouldTickIfViewportsOnly()函数,令其返回true,这样就会在Edtor下调用该类型对象的Tick()函数

参考文章:https://chriszuko.com/ue4-how-to-editor-tick/

结果如下:

GIF 2021-1-4 19-01-04

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2021 Opda
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信