紋理合成的需求
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的效果。
可以看到,插值可以很好地控制合成效果。
而插值的第三個參數,可以使用一個灰度圖。下圖就是用一張黑白相間的灰度圖合成的效果。
相對於其他運算,插值更廣泛的應用於紋理合成。
原文地址:原文地址
本文首發於翰者學堂