UE5 材质 运动的扭曲效果
前言
本篇使用UE5的材质系统实现运动的扭曲效果,并解决他的重复性
纹理变换
-
总结思路
为uv坐标添加time节点
-
实现
如下图所示,Texcoord指定uv起始坐标,提供一个float2变量和Time节点相乘(这样对Time有控制权),将相乘结果与uv坐标相加,最后传给采样器
扭曲效果
-
原理
由于噪声的值是固定随机的,将噪声函数应用到纹理中使得纹理的各通道呈现随机性,使用噪声纹理可以做到偏移uv坐标,这样
即可实现扭曲效果
-
思路
噪声纹理提供uv坐标,将该uv坐标用于纹理的采样
-
实现
-
控制扰动强度
- 解决:可以看到采样生成的纹理过于扭曲,这是因为纹理贴图中提供的噪声值过大,此时乘以一个value即可削弱强度
-
让扭曲效果动起来:扭曲效果+纹理变换
- 解决:如图所示,先对噪声纹理进行纹理变换,再将得到的uv值传入采样器
- 解决:如图所示,先对噪声纹理进行纹理变换,再将得到的uv值传入采样器
-
让变换的扭曲效果更加真实
-
问题:从上图可以看出,这些变换只是一味的重复(平铺模式是固定的),很容易就被看穿(因为计算机中的随机都是伪随机)
-
解决:分两次采样噪声函数,将两个采样的uv值求和传给最终的采样器
-