薛山
滴水波紋是視覺特效里最基礎(chǔ)的效果之一,在很多渲染項目中都有大量使用,不過滴水波紋效果往往需要液體物理模擬才能實現(xiàn),而即便是想要避免物理模擬,傳統(tǒng)思路也需要使用動態(tài)繪畫等方法來實現(xiàn)近似的效果,那么,有沒有既不需要建模,也不需要物理模擬和動態(tài)繪畫的方法呢?
簡單來說,滴水波紋其實就是部分頂點的上下起伏,而這種起伏在著色器編輯器里就可以用“置換”來表達,所以在著色器里我們只需要定義哪些位置需要“置換”,而置換的強度變化又是怎樣就行。
首先,我們新建一個平面,并給它賦予一個7級的表面細分修改器,接下來在材質(zhì)屬性里將置換設(shè)置為“置換與凹凸”或“僅置換”,這是Cycles渲染器實現(xiàn)置換效果的前提。然后就進入著色器編輯器界面。因為我們的滴水波紋效果是從中心向四周擴散,所以首先我們要獲得從中心到四周的距離,這時候就要用“紋理坐標”連接“矢量算法”的“距離”,如果你想要自定義中心點的位置,可以在視圖里新建一個空物體,并設(shè)置為“紋理坐標”的“物體”。
接下來,我們需要連接“乘加”“分數(shù)”和“顏色漸變”,這三個節(jié)點的功能就是定義一圈圈的滴水波紋的發(fā)生位置、頻率和高低落差,最后用“置換”節(jié)點連接“材質(zhì)輸出”的“置換”,完成后可以得到如圖1那樣有一圈圈均勻高低起伏的滴水波紋圖樣。
那么問題來了,滴水波紋都是隨著傳播距離的增大而逐漸消失的,這種均勻分布顯然不符合視覺邏輯,因此我們還需要在“矢量算法”的“距離”后方單獨接一個顏色漸變,以它作為乘數(shù),讓距離中心點越遠的位置乘以一個越小的數(shù)字,從而實現(xiàn)中心高、四周低的波紋形態(tài)。
這時候的波紋看上去顯得有些單調(diào),沒有水花激蕩的感覺,為了增加波紋的隨機性,可以在最前端的“紋理坐標”后添加一個“噪波紋理”,并以“線性光”進行混合,具體的設(shè)置和效果可參考圖2。
不過,使用置換來制作滴水紋理的缺點也很明顯,就是必須在Cycles渲染視圖下才能被正確應(yīng)用,其他任何視圖模式都不行,考慮到越是擬真,就越需要使用大量頂點數(shù)據(jù),所以這個方法對電腦硬件配置的要求更高。
如果你的電腦性能一般,或者并不想消耗太多的時間來等待Cycles渲染,那么換個思路,利用幾何節(jié)點來制作滴水波紋效果,因為幾何節(jié)點是不挑渲染器的,EEVEE也能正常工作。
節(jié)點設(shè)計的邏輯其實和方法一相同,只是細節(jié)設(shè)計上有些不一樣,首先我們還是新建一個平面,然后在幾何節(jié)點編輯器里添加7級以上的“表面細分”,再連接“設(shè)置位置”,我們的幾何節(jié)點功能就需要從“設(shè)置位置”的“偏移量”來入手。
接下來,我們要用到“矢量算法”的“距離”節(jié)點,但這次是和“位置”進行連接,而“距離”的另一個數(shù)據(jù)接口可以連接空物體,這時候可以直接把空物體拖進幾何節(jié)點里進行連接,但注意要選擇“相對”。
然后我們需要一個“減法”“乘法”和“正弦”,同樣是控制滴水波紋的頻率和位置,然后連接“矢量算法”的乘法,注意這里我們只需要在Z軸上做乘法就行,否則會出現(xiàn)偏移誤差。而這一步完成后我們就又可以得到如圖3所示的均勻分布滴水波紋了。
與著色器方案一樣,到這一步的時候我們需要解決的問題就是如何添加隨機性,并且降低滴水波紋的邊緣區(qū)域高度,隨機性我們同樣可以使用“噪波紋理”來解決,但這次添加的位置就不是在節(jié)點的最前端了,而是在“正弦”后,將“噪波紋理”和“矢量算法”的“縮放”通過“矢量算法”的“乘法”進行連接,這樣一來我們就獲得一個表面細節(jié)豐富的水面效果。
至于邊緣高度降低,需要在“距離”節(jié)點后加入一個“算法”的“相減”,這樣可以得到一個中心高、四周低的效果,然后再接一個“算法”的“相乘”并通過“合并XYZ”進行連接,就能得到如圖4那樣的滴水波紋效果啦!
從效果來說,兩者都有著比較強的可控性和可玩性,對于大多數(shù)Blender玩家來說應(yīng)該都沒有太大的難度,考慮到無論著色器的置換還是幾何節(jié)點,在動畫制作中都起著舉足輕重的作用,因此我們還是認為這兩種方法都值得大家學(xué)習(xí)。當然,如果硬要二選一的話,能夠同時支持各種渲染器甚至實體視圖也能預(yù)覽的幾何節(jié)點方案可以更優(yōu)先學(xué)習(xí)。
對了,可能有讀者朋友會覺得直接使用置換修改器,并添加環(huán)狀木紋作為紋理也能實現(xiàn)類似效果,從方法來說的確是可以的,但由于系統(tǒng)自帶的紋理不能做動畫,因此我們需要額外制作一個黑白相間的圓環(huán)動畫來作為置換紋理才能真正實現(xiàn),但這個方法不能即時調(diào)整參數(shù),所以我們并沒有推薦。