UE4游戏场景开发 --基于UV动画实现带波纹的水面材质

说起水面材质,不得不先提一下神奇的法线贴图,通过改变材质表面的法线,来改变光的反射方向,从而使得2D的平面在我们的眼中达到3D的效果。

自从知道了法线贴图,小编开始回忆自己玩过的很多游戏,似乎大多数游戏的地面以及墙体都是采用了法线贴图来实现,想想一些游戏中的效果是不是打在看起来凹凸不平的墙面地面却都是平面的效果。

这里扯远了,今天小编就来谈谈如何通过法线贴图和UV坐标变化来实现带波纹的水面材质。

首先,水面最重要也是真实性的体现的就是倒影,倒影分为两个部分,一个是环境形成的倒影,我们可以通过计算reflection vector,从Cube贴图中获得,另一个是模型形成的倒影,我们可以通过菲涅尔效应去完善:

UE4游戏场景开发 --基于UV动画实现带波纹的水面材质_第1张图片

接下来我们还需要改变材质的属性,因为水应该是半透明的,改变Blend Mode为半透明,并调整水的透明度

UE4游戏场景开发 --基于UV动画实现带波纹的水面材质_第2张图片

UE4游戏场景开发 --基于UV动画实现带波纹的水面材质_第3张图片

最后也是最重要的一步,模拟水面的波纹,虽然有了法线贴图,但是如果只是使用法线贴图的话,水面呈现出的效果就是一片死水,水面的波纹当然是要动的,为了模拟出更加真实的水面波纹,我们需要将尽可能多的方向上的水面波纹动向叠加在一起,小编这里分别用了四个UV坐标变化,变化的方向分别是(-1,-1),(1,1),(-1,1),(1,-1)

UE4游戏场景开发 --基于UV动画实现带波纹的水面材质_第4张图片

那么这样我们的水面材质就算是完成了,制作过程非常的简单,当然,其实应该说是简陋,但是从视觉上也算是完善了,附上效果图:


将我们的材质放到场景中去,效果也是非常好的:

UE4游戏场景开发 --基于UV动画实现带波纹的水面材质_第5张图片


你可能感兴趣的:(游戏开发)