首先Noise本来就是一张噪点图
云的扰动不能太大,将Scale调小,并将InputMin调整为0
形成这样一张扰动图
扰动需要根据材质在世界的位置进行调整,所以Position需要加上WorldPosition
材质在不同世界位置,噪点不同
除以一个数,相当于原来0~1范围的贴图变成了0~0.2范围的贴图,贴到了一个大小相同的物体上,那么材质展现的大小就变大了
选择这个参数,就会有对应曲面细分的节点
UE4_材质_曲面细分材质 - 知乎 (zhihu.com)
曲面细分可以看上面的知乎
这个填4,这个看要细分的效果自行调整
在扰动图上面乘以顶点法线的方向,在强度上乘以一个合理的值,放在偏移上去,就产生了该效果,云的初步形状
现在新建一个材质做云的边缘,将扰动效果复制粘贴过来
想到边缘Fresnel会是其中一个
通过这两个参数,调整边缘的效果
对比以上两个图
由于扰动图加1,整个最外层的值肯定是在1~2之间的,而Fresnel乘以2,最外层是2的递减,相减之后,最外层肯定为小于等于0的,所以最外层为黑色,内层Fresnel是值越小的,减去了过后,值也会在较大值,而不会为0,所以呈现白色,这样就可以对最外层做弱化效果了,但是先不急,我们需要控制黑色范围的程度,用Pow节点
接下来要做上层亮度亮,下层亮度暗的操作了,因为上层有环境光线
对向上的方向向量与像素法线做点积
像素法线与顶点法线的区别:
像素法线会受法线贴图的影响,而顶点法线不会
这里的SmoothStep会将自身值,过渡到Min到Max的一条平滑曲线,注意是曲线,不是Clamp的线性直线
最后再给上面一个颜色
再新建一个材质,内容差不多,只不过点积的值变化成了太阳光的方向,这样让太阳光的方向的云有一个强光效果
最后整合一下以上功能:
新建最终的材质:
将之前做边缘的逻辑复制过来
增加一个DitherTemporalAA,这是一个抗锯齿操作,让看上去效果更有粒子感
就这种边缘过渡粒子感
在Offset这边加上对应的云层飘动效果
在噪点处增加云层颜色,以及云层夹缝颜色
连到自发光上面,再将偏移放进去
再将上下的光线亮度做区别,云层上亮一点,下面暗一点
同理,再连一条太阳光影响
云层上侧
云层下侧