接上篇:杨超: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生成方法就都说完了。


推荐阅读:
相关文章