地形材質(zhì)表面添加水坑效果
第一步,將所需要的材質(zhì)做成材質(zhì)函數(shù),makematerialAtributes輸出材質(zhì)屬性如圖

第二步,在地形材質(zhì)中添加Layer Blend節(jié)點(diǎn)使各材質(zhì)混合起來(lái)。

這里layer blend添加了5層,“zhuan”和“Rock”都是用來(lái)測(cè)試用的,因?yàn)橹發(fā)ayer blend添加4層材質(zhì)后,就不能再添加材質(zhì)層了,提示紋理采集超過(guò)16。(解決方法:將材質(zhì)函數(shù)中的texture Sample節(jié)點(diǎn)的采樣器源從“自紋理資產(chǎn)”改為“共享:包裹”)。

解釋一下layer blend的混合類型。

這里layer blend混合類型有“LB透明度”、“LB權(quán)重混合”、“LB高度混合”三種。
(另外這個(gè)老鐵專欄比較詳細(xì)的講解了layer blend混合類型的區(qū)別https://www.bilibili.com/read/cv9179134)大致就是權(quán)重是可繪制的,透明度是不可像權(quán)重一樣被遮蓋的,高度混合和權(quán)重的區(qū)別就是高度混合會(huì)在材質(zhì)的邊緣銜接的更nice,當(dāng)選擇了高度混合,blend節(jié)點(diǎn)就會(huì)多出一個(gè)Hightxxxx的input節(jié)點(diǎn)。
第三步,重點(diǎn)來(lái)了,如何添加水坑材質(zhì)效果。(B站視頻地址https://www.bilibili.com/video/BV1zy4y1i7C9?p=3)

進(jìn)入這個(gè)材質(zhì)函數(shù),一步步重來(lái)一遍好了。
①、制作水坑大遮罩
這里就用到Displacement Map了。


R通道不明顯,做遮罩效果不明顯。用if節(jié)點(diǎn)來(lái)加強(qiáng)遮罩。

黑色部分是凹處水坑,白色是凸處泥土,修改Puddle Size值可以改變黑白部分的大小。到這里基本上這個(gè)函數(shù)節(jié)點(diǎn)就OVER了。
②制作水坑邊緣遮罩。

③Normal部分。水坑的邊緣Normal應(yīng)該是削弱的map,水面應(yīng)該是無(wú)Normal的,用lerp節(jié)點(diǎn)。

然后削弱法線,再用一個(gè)lerp節(jié)點(diǎn)編輯水坑邊緣部分。

④顏色部分,水坑顏色應(yīng)該和土的顏色差不多,但是水坑中間是渾濁的 漸漸的邊緣清晰可見,結(jié)合lerp節(jié)點(diǎn)這個(gè)效果需要重新編輯一個(gè)遮罩(同樣的用displacement map)。

multiply節(jié)點(diǎn)來(lái)調(diào)節(jié)水坑顏色的整體尺寸,Power來(lái)調(diào)節(jié)水坑的深度不透明度。測(cè)試出來(lái)puddle depth2.3,opacity1.1比較合適。
這個(gè)clamp節(jié)點(diǎn)min節(jié)點(diǎn)連接水坑遮罩,水坑遮罩的白色部分與power節(jié)點(diǎn)輸出相對(duì)應(yīng)的位置不受影響,clamp后該部分輸出1。(解釋的不太通暢,不知道過(guò)后自己能看懂不)

⑤粗糙度編輯,另外也需要調(diào)整水坑邊緣的泥土濕度,不然干濕太過(guò)分離看著很假。干濕分離遮罩需要重新制作。

這里用了個(gè)lerp節(jié)點(diǎn),混合度Wetness shift為0.75,這個(gè)值設(shè)置邊緣濕度。

最終大致效果出來(lái)了。(最后添加各種input節(jié)點(diǎn)就能實(shí)現(xiàn)最開始的函數(shù)樣子)
我們想實(shí)現(xiàn)的目的其實(shí)是能使用各層的Highmap及其他屬性,不局限于剛才的泥巴貼圖。因此,最終這個(gè)材質(zhì)函數(shù)應(yīng)該輸入材質(zhì)屬性,輸出材質(zhì)屬性。再將hight map轉(zhuǎn)化為scale輸入。另外需要一個(gè)Alpha值作為“繪制權(quán)重”,結(jié)合一個(gè)landscapeSample節(jié)點(diǎn)連接這個(gè)Alpha值控制繪制。

另外需要輸出Hightmap,這里用一個(gè)lerp節(jié)點(diǎn)作為限制,說(shuō)實(shí)話不是很懂?!?/p>
總結(jié)一下

再進(jìn)行下一步!?。?!我們回到地形材質(zhì)節(jié)點(diǎn)中。

用兩個(gè)lerp,再結(jié)合sample權(quán)重值將不同層材質(zhì)的高度圖值混合起來(lái)。最終將輸出連接到材質(zhì)函數(shù)的hight節(jié)點(diǎn)。再將layer blend的輸出節(jié)點(diǎn)連接到材質(zhì)函數(shù)的材質(zhì)屬性輸入節(jié)點(diǎn)。

接下來(lái)將材質(zhì)屬性設(shè)置為細(xì)分,再結(jié)合camera Position和absolute world position兩節(jié)點(diǎn)做插值再取模的操作作為遮罩,最終近處值為0 離攝像機(jī)越遠(yuǎn)的像素點(diǎn)值越大,再結(jié)合lerp節(jié)點(diǎn)節(jié)約“資源”。

這個(gè)遮罩用于細(xì)分設(shè)置和世界場(chǎng)景位移節(jié)點(diǎn)設(shè)置,以達(dá)到節(jié)約資源的目的。
最后提一句,layer blend第一個(gè)輸入節(jié)點(diǎn)可以用作地形材質(zhì)的高低自動(dòng)材質(zhì)?。。。。?!
