读这篇文章之前,请先看上一篇【UE4 006】自适应地形海拔的自动地形材质。
学习请关注 微信公众号
效果图:
一、原理:
继上篇文章,材质节点(MatLayerBlend_Standard)的Alpha参数是显示地表上层和下层材质的插值过渡参数。
这里采用当前空间点的坡度进行计算,坡度由当前点的切平面(切线平面)决定,所以这里核心就是计算当前的切线空间的法线。在切线空间,法向量是垂直于切平面的单位向量:N(0,0,1),这里我想读者应该能理解,高中解析几何就教过了。坡度是相对于世界空间的一个量,所以有必要将此点的法线转换到世界空间,得到向量N'。N'的的z'分量决定沿世界空间Z轴方向的角度。z'越大,N'就越靠近平行于Z轴,坡度就越陡峭。
-
将法线N(0,0,1)转换到世界空间并归一化得到N'
-
取出 N' 的 z'分量有两种方法
- z' 是单位向量N'坐标分量,所以取值范围(-1,1)。为了让得到的 z' 作为渐变插值函数的alpha值,还需要将 z' 映射到(0,1)范围。公式就是 a = (a + 1) * 0.5。
- 设置斜坡变化范围
二、整体蓝图节点