接上篇:楊超:houdini+unity河流(二)

視頻封面

00:07

本篇說wet mask和depthmap。

一,wet mask

wet mask用來標記哪些部分被河水浸濕。

下面五個圖依次是:

河面擠出,地形,河面減地形,河面減地形塗黑,顏色傳遞給地形(得到地形的wet mask)

石頭的wet mask生成過程類似,之所以地形的wet mask和石頭的wet mask分開生成,是由於兩者的過度寬窄不同--地形粗糙吸水,過度寬;石頭光滑,過度窄。

另外注意,houdini的attribute transfer節點是自帶過度(擴張)功能的,主要靠這兩個參數:

此處用這個過度比用attribute blur要好,原因是attribute blur只是blur,而不是擴張。

最終wet mask如下:

二,depthmap

depthmap是存河水深度,即河面各點與河床的高度差。以便用來控制水的透明度--越淺的地方越透明。

需要說明的是,用水的深度控制透明度是不對的,應該是用zbuffer深度控制水的透明度,如下圖所示:

但手游中往往由於開銷較大不讓用zbuffer深度,所以只好用depthmap深度代替。

求depthmap,從河面各點向河床發射線即可,沒什麼可說的。結果如下:

至此河流製作中幾個主要mask生成方法就都說完了。


推薦閱讀:
相关文章