
對(duì)于任何的3D建模而言,材質(zhì)可以說是實(shí)現(xiàn)視覺效果最關(guān)鍵的一步,但并不是所有的材質(zhì)都可以通過著色器自行生成,我們?nèi)孕枰褂肞BR(Physically Based Rendering,基于物理的渲染)材質(zhì),這些材質(zhì)基本都源自真實(shí)場(chǎng)景中拍攝的照片,PBR材質(zhì)的優(yōu)點(diǎn)是真實(shí)性很強(qiáng),并且可以調(diào)整顏色、糙度、凹凸、置換等細(xì)節(jié),而且相對(duì)VRAY等方案來說計(jì)算強(qiáng)度更低,對(duì)于實(shí)時(shí)渲染而言是很好的選擇對(duì)象。

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

在動(dòng)手前不妨先思考一下,之所以會(huì)出現(xiàn)規(guī)律的原因在于物體的UV是由一塊塊一模一樣的材質(zhì)所構(gòu)成,所以方案A:讓每一塊材質(zhì)都不一樣,這個(gè)方案目前來看實(shí)現(xiàn)難度很大,不推薦。而方案B就是打破UV構(gòu)成形式,讓它不再像砌磚一樣規(guī)規(guī)整整,這個(gè)方案顯然難度要低很多,所以就從它入手吧!
第一步:使用沃羅諾伊紋理改變材質(zhì)映射

材質(zhì)的顯示都是通過紋理坐標(biāo)來進(jìn)行映射,因此,當(dāng)我們需要打破UV形式時(shí),從映射方式入手再合適不過,而映射項(xiàng)目上可以看到“位置”和“旋轉(zhuǎn)”項(xiàng)目,只要改變這兩個(gè)項(xiàng)目就能實(shí)現(xiàn)材質(zhì)UV的重構(gòu),不過,我們?nèi)孕枰x擇一種重構(gòu)方式,其中沃羅諾伊紋理的顏色選項(xiàng)就是一個(gè)非常不錯(cuò)的方案,它的構(gòu)成形態(tài)如圖2所示,顯然,當(dāng)隨機(jī)性設(shè)置為1時(shí),完全沒有規(guī)律性,用來作為UV重構(gòu)圖樣很適合。
所以,我們需要用它來連接材質(zhì)的映射位置和旋轉(zhuǎn)選項(xiàng),但直接連接會(huì)存在問題,因此需要為位置選項(xiàng)增加一個(gè)相乘和相加,以便于微調(diào)每一個(gè)重構(gòu)分塊的位置,而旋轉(zhuǎn)選項(xiàng)則需要連接相乘和合并XYZ,并以Z連接,這是因?yàn)槲覀儾⒉幌胨诿恳粋€(gè)軸都旋轉(zhuǎn),那樣會(huì)導(dǎo)致圖案出現(xiàn)明顯的拉伸,當(dāng)然,這是因?yàn)槲覀兊奈矬w是平面對(duì)象,在針對(duì)立體對(duì)象時(shí)需要隨機(jī)應(yīng)變,靈活設(shè)置。
第二步:降低重構(gòu)UV分區(qū)的邊緣銳度

當(dāng)完成上一步之后其實(shí)我們就可以看到材質(zhì)已經(jīng)看不到規(guī)律性重復(fù),但又有了新的問題:沃羅諾伊紋理的邊緣銳度很高,幾乎沒有柔和的過渡,這就會(huì)導(dǎo)致如圖3所示的情況,材質(zhì)細(xì)節(jié)上會(huì)有很明顯的邊緣切割,這對(duì)于同時(shí)需要大場(chǎng)景和細(xì)節(jié)展示的設(shè)計(jì)主題來說顯然不可取,所以,我們還需要進(jìn)一步設(shè)置著色器以修正這個(gè)問題。

既然是重構(gòu)UV的邊緣出現(xiàn)問題,就想辦法柔和過渡吧。首先我們將原材質(zhì)復(fù)制一組放到一邊,并用混合著色器將它與我們此前做好的重構(gòu)UV材質(zhì)進(jìn)行混合,這么做的目的是讓原材質(zhì)作為混合項(xiàng),來為銳利的邊緣做圖像填充。
接下來復(fù)制一個(gè)沃羅諾伊紋理及其紋理坐標(biāo),將“F1”改為“到邊緣的距離”,這里建議用值(明度)同時(shí)連接這兩個(gè)沃羅諾伊紋理的縮放值,因?yàn)檫@兩個(gè)值必須保持一致,然后使用一個(gè)相乘來連接新的沃羅諾伊紋理和混合著色器的系數(shù),并適當(dāng)調(diào)整相乘的數(shù)值。

這時(shí)候我們可以在原材質(zhì)和原理化BSDF之間添加一個(gè)“色相/飽和度/明度”,并將“色相”增加到1,這樣我們就能如圖4那樣清晰地看到兩個(gè)材質(zhì)如何進(jìn)行混合,藍(lán)色部分正好是UV重構(gòu)的邊緣,也就是原材質(zhì)對(duì)UV重構(gòu)材質(zhì)進(jìn)行混合的區(qū)域。通過圖5可以看到,圖3中銳利的邊緣消失了,取而代之的就是我們想要的柔和過渡,而我們最終得到的物體紋理如圖6所示,已經(jīng)看不到規(guī)律性重復(fù)的印跡。
本期教程完全基于著色器,完全沒有涉及建模,可見Blender的各個(gè)功能模塊都有著很強(qiáng)的可玩性,值得大家去努力探索。從整個(gè)著色器來看應(yīng)該也是本系列教程有史以來最復(fù)雜的一期,但實(shí)用性很高,對(duì)很多大場(chǎng)景的材質(zhì)渲染可以起到關(guān)鍵作用。本文的核心觀念就是利用紋理來打破UV的限制,在材質(zhì)分辨率整體保持一致的情況下實(shí)現(xiàn)圖案的重構(gòu),事實(shí)上這一思路還有很多的應(yīng)用方向,未來有機(jī)會(huì)我們?cè)贋榇蠹依^續(xù)展開吧!