1. 程式人生 > 其它 >Blender著色器教程,材質解析度不在受限制

Blender著色器教程,材質解析度不在受限制

對於包括blender在內的任何3D建模而言,材質可以說是實現視覺效果最關鍵的一步,但並不是所有的材質都可以通過著色器自行生成,我們仍需要使用PBR(Physically Based Rendering,基於物理的渲染)材質,這些材質基本都源自真實場景中拍攝的照片,PBR材質的優點是真實性很強,並且可以調整顏色、糙度、凹凸、置換等細節,而且相對VRAY等方案來說計算強度更低,對於實時渲染而言是很好的選擇物件。

1.blender大場景單一材質容易出現規律性重複,怎麼辦?

但既然是源自真實世界的數字影象就一定存在邊界問題,當我們想要在很大的物體上使用PBR材質時,就不可避免地需要在UV面板中進行縮放,這時候就會出現一個明顯的問題:即便你下載了所謂的無縫材質,在這種大幅度縮放的情況下也會出現規律性重複,如圖1所示,這無疑會大幅降低視覺真實性,相信很多設計師都已經遭遇過這樣的情況。那麼,這個問題有沒有辦法解決呢?

圖1

2.思路解析:從整個UV來打破規律!

在動手前不妨先思考一下,之所以會出現規律的原因在於物體的UV是由一塊塊一模一樣的材質所構成,所以方案A:讓每一塊材質都不一樣,這個方案目前來看實現難度很大,不推薦。而方案B就是打破UV構成形式,讓它不再像砌磚一樣規規整整,這個方案顯然難度要低很多,所以就從它入手吧!

第一步:使用沃羅諾伊紋理改變材質對映

材質的顯示都是通過紋理座標來進行對映,因此,當我們需要打破UV形式時,從對映方式入手再合適不過,而對映專案上可以看到“位置”和“旋轉”專案,只要改變這兩個專案就能實現材質UV的重構,不過,我們仍需要選擇一種重構方式,其中沃羅諾伊紋理的顏色選項就是一個非常不錯的方案,它的構成形態如圖2所示,顯然,當隨機性設定為1時,完全沒有規律性,用來作為UV重構圖樣很適合。

圖2

所以,我們需要用它來連線材質的對映位置和旋轉選項,但直接連線會存在問題,因此需要為位置選項增加一個相乘和相加,以便於微調每一個重構分塊的位置,而旋轉選項則需要連線相乘和合並XYZ,並以Z連線,這是因為我們並不想它在每一個軸都旋轉,那樣會導致圖案出現明顯的拉伸,當然,這是因為我們的物體是平面物件,在針對立體物件時需要隨機應變,靈活設定。

第二步,降低重構UV分割槽的邊緣銳度

當完成上一步之後其實我們就可以在blender當中看到材質已經看不到規律性重複,但又有了新的問題:沃羅諾伊紋理的邊緣銳度很高,幾乎沒有柔和的過渡,這就會導致如圖3所示的情況,材質細節上會有很明顯的邊緣切割,這對於同時需要大場景和細節展示的設計主題來說顯然不可取,所以,我們還需要進一步設定著色器以修正這個問題。

圖3

既然是重構UV的邊緣出現問題,就想辦法柔和過渡吧。首先我們將原材質複製一組放到一邊,並用混合著色器將它與我們此前做好的重構UV材質進行混合,這麼做的目的是讓原材質作為混合項,來為銳利的邊緣做影象填充。

接下來複制一個沃羅諾伊紋理極其紋理座標,將“F1”改為“到邊緣的距離”,這裡建議用值(明度)同時連線這兩個沃羅諾伊紋理的縮放值,因為這兩個值必須保持一致,然後使用一個相乘來連線新的沃羅諾伊紋理和混合著色器的係數,並適當調整相乘的數值。

這時候我們可以在原材質和blender原理化BSDF之間新增一個“色相/飽和度/明度”,並將“色相”增加到1,這樣我們就能如圖4那樣清晰地看到兩個材質如何進行混合,藍色部分正好是UV重構的邊緣,也就是原材質對UV重構材質進行混合的區域。通過圖5可以看到,圖3中銳利的邊緣消失了,取而代之的就是我們想要的柔和過渡,而我們最終得到的物體紋理如圖6所示,已經看不到規律性重複的印跡。

圖4

圖5

圖6

本章小結:略微複雜但實用性很強

本期教程完全基於著色器,完全沒有涉及到建模,可見Blender的各個功能模組都有著很強的可玩性,值得大家去努力探索。從整個著色器來看應該也是本系列教程有史以來最複雜的一期,但實用性很高,對很多大場景的材質渲染可以起到關鍵作用。本文的核心觀念就是利用紋理來打破UV的限制,在材質解析度整體保持一致的情況下實現圖案的重構,事實上這一思路還有很多的應用方向,未來有機會我們再為大家繼續展開吧!