1. 程式人生 > >UE4遊戲場景開發 --基於UV動畫實現帶波紋的水面材質

UE4遊戲場景開發 --基於UV動畫實現帶波紋的水面材質

說起水面材質,不得不先提一下神奇的法線貼圖,通過改變材質表面的法線,來改變光的反射方向,從而使得2D的平面在我們的眼中達到3D的效果。

自從知道了法線貼圖,小編開始回憶自己玩過的很多遊戲,似乎大多數遊戲的地面以及牆體都是採用了法線貼圖來實現,想想一些遊戲中的效果是不是打在看起來凹凸不平的牆面地面卻都是平面的效果。

這裡扯遠了,今天小編就來談談如何通過法線貼圖和UV座標變化來實現帶波紋的水面材質。

首先,水面最重要也是真實性的體現的就是倒影,倒影分為兩個部分,一個是環境形成的倒影,我們可以通過計算reflection vector,從Cube貼圖中獲得,另一個是模型形成的倒影,我們可以通過菲涅爾效應去完善:


接下來我們還需要改變材質的屬性,因為水應該是半透明的,改變Blend Mode為半透明,並調整水的透明度



最後也是最重要的一步,模擬水面的波紋,雖然有了法線貼圖,但是如果只是使用法線貼圖的話,水面呈現出的效果就是一片死水,水面的波紋當然是要動的,為了模擬出更加真實的水面波紋,我們需要將盡可能多的方向上的水面波紋動向疊加在一起,小編這裡分別用了四個UV座標變化,變化的方向分別是(-1,-1),(1,1),(-1,1),(1,-1)


那麼這樣我們的水面材質就算是完成了,製作過程非常的簡單,當然,其實應該說是簡陋,但是從視覺上也算是完善了,附上效果圖:


將我們的材質放到場景中去,效果也是非常好的: