UE4 材质学习笔记03(翻书(Flipbook)动画/环境混合)

一.FlipBook Animation

如果你想让游戏以每秒30帧的速度运行,所有内容都必须在33毫秒内渲染出来,

如果你想让游戏以每秒60帧的速度运行的话,必须在16毫秒内。

所以当一个效果需要很多细节的时候,往往会离线创建它,然后将这个效果的每一帧放到一张纹理上,之后通过shader回放每一帧

例如下面就是一个爆炸效果的每一帧

材质编辑器里的FlipBook节点可以帮助我们播放每一帧,我们只需要连接时间节点以及行列数以及原来的UV,这个节点就可以给出我们合适的UV坐标来进行贴图采样。当我们将时间节点直接连接Animation phase的时候,默认每秒播放30帧,如果想要更改每秒播放的帧数,可以将时间节点乘上一个常数

但是接下来我们要不依靠FlipBook节点,自己来实现这个效果,这有利于我们了解FlipBook节点里面发生了什么,或者帮助我们改变效果或者做一些不同的东西。

要自己实现这个效果,首先就是缩小纹理,这个是使用乘法,这样就成功显示了第一帧的内容

接着要随时间增加变换UV坐标更换显示的图片。Floor函数可以将值向下取整。但是这样只有对角线上的图片

所以我们现在想让它按照每一行来播放,播放完一行就跳转到下一行。所以分别设置行数和列数,每当增加了六列以后行数就会加1,然后仍然将帧率设置成24

最终效果:

二.环境混合

在过去通常要给不同环境下的岩石都做一套纹理,然后就有了一堆不同的岩石资产,但是现在我们可以做的是我们可以创建一套岩石资产,然后根据岩石环境的不同来替换材质。

混合材质的方法就是使用lerp节点,Lerp节点会根据输入的Alpha(默认是0.5)对两张贴图的颜色进行混合,混合公式是lerp(A,B,t)=A+(B−A)×t

但是事实上苔藓应该只覆盖在岩石的顶部,因此我们引入世界空间的顶大法线,因为虚幻引擎是z轴朝上,所以获取到法线的z分量,通过这个分量去决定插值的比例,就可以让顶点法线向上的部分被苔藓覆盖,同时还要将法线的z值限制到0-1。

但是接下俩我们想要在岩石和苔藓之间有明显的分界线 ,首先可以在mask后面加一个power节点,这个可以进行幂运算,base值越大,二者分割线越明显,然后可以加上一个值控制苔藓的范围,加1的时候刚好覆盖一半的范围

但是这样的边缘线太生硬了,所以改为使用岩石自身的法线,使用法线的时候要将法线从切线空间转换到世界空间,这样岩石和苔藓相容的很好,当我们想要将岩石更换到其它环境的时候,只需要更换苔藓的贴图为其它环境的贴图就可以

相关推荐
艾莉丝努力练剑12 分钟前
【AI大模型接入SDK】ChatServer 路由规则绑定
网络·c++·人工智能·学习·ai·架构
Rabitebla23 分钟前
【Linux】 权限篇(三):深入理解 umask 位运算与粘滞位的设计思想
java·linux·服务器·c++·笔记·学习
誰能久伴不乏31 分钟前
AI 时代,我们该怎么正确地学习编程
人工智能·学习
java_nnnn35 分钟前
Linux 学习第一篇:从零认识 Linux,使用 WSL + Ubuntu 搭建学习环境
linux·运维·学习
实名上网宋凯宣1 小时前
现代电网可靠性测试系统-VPP工作笔记
笔记·学习
Z21-X1 小时前
云原生运维学习笔记:KVM实战——从环境搭建到热迁移的硬核体验
运维·笔记·学习·云原生
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Trae生成代码介绍
网络·c++·人工智能·学习·架构
tellmewhoisi1 小时前
深度学习5:神经网络学习2:数值微分,偏导,梯度
深度学习·神经网络·学习
辣知1 小时前
辣知·化智88 为民族示范变革代价与价值
学习
panpan16191 小时前
中考、高考、KET、PET高效学习工具
学习·高考