纹理合成的需求
UE4材质常常需要合成不同的纹理。常用的合成运算,有好几种选择,下面单独介绍。
下面这两种图片,是合成之前的图片。
UE4材质中的乘法
乘法是最常用的合成运算。
下面是这两张图用乘法合成的效果。
乘法合成很简单,取值范围在运算之后仍然是0~1。
但是合成之后会变暗,这是因为两个0~1的数相乘,会变得更小,所以更暗。下图是材质节点。
UE4材质中的加法
这是加法合成的效果。
两个0~1之间的数相加,范围是0~2,所以需要再除以2。下图是材质节点。
但是为什么整体会变亮?其实不只是变亮,而是亮度趋向于平均值。亮的地方更暗,暗的地方更亮。
这就是均值运算造成的结果。
UE4材质中的除法
下图是合成的效果。
下图是材质节点。
其实除法一般不用于纹理合成,原因很简单,两个0~1之间的数相除之后,其取值范围变化非常大。可能会有很多像素点的值直接超过1,表现为白色。合成之后的结果也证明了这一点。
另外,哪个除以哪个,效果也不同。下图是交换之后的结果。
UE4材质中的减法
同样的,减法不满足交换律。下图是减法合成的效果。
下图为材质节点。
两个0~1之间的数相减,其取值范围为-1~1,而小于0的颜色按照0来算,所以很多像素点直接就是黑色。
你也可以进行先加1再除以2的运算,但是效果。。并不好,下图就是。
UE4材质中的插值(Lerp)
插值可以取得更多样的效果,因为插值引入了第三个参数。
下图是材质节点。
而Lerp的Alpha参数分别为0.5、0.2、0.8的效果。
可以看到,插值可以很好地控制合成效果。
而插值的第三个参数,可以使用一个灰度图。下图就是用一张黑白相间的灰度图合成的效果。
相对于其他运算,插值更广泛的应用于纹理合成。
原文地址:原文地址
本文首发于翰者学堂