您需要 登录 才可以下载或查看,没有账号?注册
x
flowmap在游戏里经常来模拟流动的效果,它的原理是使用一张二维方向纹理来对贴图的UV坐标进行扭曲。从而达到一种图像在流动的感觉。因为是对贴图进行的操作,所以在性能上的影响很小,可以来做一些有趣的效果。本例最终效果如下(至于不连续的感觉是因为gif录制时的关系):
作为流动模拟具体的实现思路如下: 1.使用一张flowmap将原图进行扭曲。获得扭曲贴图1 2.将时间进行一定偏移,对原图进行另一次扭曲。获得扭曲贴图2 3.将两张扭曲贴图进行差值,在流动的同时将两张贴图进行差值,得到无限流动的感觉。 有了实现思路,在SD里进行还原就很容易了。 首先建立一个Pixel Processor节点,将原图与flowmap贴图输入,并进行编辑。如下图:
之后我们要将输入的flowmap(input1)贴图进行一定的处理,让它从(0,1)区间恢复到(-1,1)区间,来保证流向正确。操作如下: 接下来使用时间来让扭曲结果随着时间变化,变化范围在(0,0.05)。在这里可以把变化参数Expose到参数面板来控制。最后使用处理好的flowmap图来对原图uv进行修改,从而获得扭曲贴图1。操作如下: 扭曲贴图2的制作思路与1基本一致只是将时间进行一定偏移 接下来要进行两张贴图的融合,在这个阶段我们希望混合方式为时间为0的时候扭曲贴图2强度为0,扭曲贴图1强度为1,随着时间接近1,扭曲贴图2强度逐渐到达1,时间到达1之后扭曲贴图2强度逐渐归回0,函数图如下: 黄色为扭曲贴图1 绿色为扭曲贴图2 蓝色为混合强度控制 可以通过函数图看出,混合强度的函数的目的是让两张扭曲图平滑过渡。节点如下: 最后使用线性插值将两张图以混合函数为遮罩进行混合,如下图: 至于flowmap的制作生成我使用的是Substance Painter来制作的。方法在官方文档里有提供。附上链接: Allegorithmic Documentation。有兴趣的同学可以尝试一下。
|