薛山
一般來(lái)說(shuō),3D建模的可逆性都相對(duì)不強(qiáng),也就是當(dāng)我把立方體變成異型之后,想要變回來(lái),或者再變成其他形狀就比較麻煩,基本上沒有退路可循。不過(guò),隨著修改器設(shè)計(jì)的不斷發(fā)展,我們?cè)贐lender里已經(jīng)可以實(shí)現(xiàn)相當(dāng)豐富、隨時(shí)可調(diào)整的功能,比如平滑邊緣,就不一定要在模型上自己手動(dòng)做平滑,而是通過(guò)修改器對(duì)范圍、幅度、強(qiáng)度進(jìn)行程序化的控制,簡(jiǎn)單來(lái)說(shuō)就是給予我們更多的控制空間,賣了一劑“后悔藥”。事實(shí)上在結(jié)合修改器+材質(zhì)著色器的基礎(chǔ)上,我們甚至不需要建模,就能生成很多的3D模型,而且對(duì)模型的形態(tài)有著隨時(shí)可調(diào)整的巨大優(yōu)勢(shì)。那么,究竟要如何實(shí)現(xiàn)呢?我們本期就以一顆“螺絲釘”來(lái)說(shuō)起吧。
如圖1,看起來(lái)就是平平無(wú)奇的一顆螺絲釘,但其實(shí)在編輯模式下查看,你會(huì)發(fā)現(xiàn)它只是一個(gè)由4頂點(diǎn)組成的平面,換言之,這并不是一個(gè)傳統(tǒng)方法建模形成的圖像,而是通過(guò)著色器設(shè)計(jì),利用置換原理所構(gòu)成的形狀,具體怎么操作呢?我們一步步來(lái)看!
我們需要新建一個(gè)平面,然后將渲染器設(shè)置為Cycles,在平面材質(zhì)中將表(曲)面置換設(shè)置為“置換與凹凸”,如圖2。這一步非常關(guān)鍵,也比較容易被新手遺忘,所以要單獨(dú)強(qiáng)調(diào)一遍。
然后切換到“渲染”模式,因?yàn)橹挥性诖四J较虏拍芸吹街脫Q效果。我們先給平面設(shè)置一個(gè)表面細(xì)分修改器,級(jí)數(shù)雖是越高越好,但越高意味著最終渲染的多邊形就越多,對(duì)硬件要求也越高,所以要量力而行,本教程最終渲染時(shí)設(shè)置為8。
然后進(jìn)入著色器編輯器,使用紋理坐標(biāo)連接矢量運(yùn)算,并將矢量運(yùn)算選擇為“長(zhǎng)度”,再連接映射范圍,并通過(guò)置換模塊連接到材質(zhì)輸出的“置換”上,這時(shí)候通過(guò)調(diào)整映射范圍的數(shù)值就能看到平面變成了向上的錐形,這時(shí)候再在映射范圍和置換之間添加一個(gè)RGB曲線,調(diào)整成螺絲釘?shù)男螤?,就能看到如圖3的效果樣式了。
我們既可以通過(guò)RGB曲線來(lái)調(diào)整螺絲釘?shù)男螤?,也能通過(guò)映射范圍的“到最大值”來(lái)調(diào)整圓滑度,這就是“程控”的意義所在,通過(guò)一組著色器設(shè)置,就能輕松讓每一顆螺絲釘都有些微的差別,這不正符合現(xiàn)實(shí)生活嗎,畢竟世上沒有完全相同的兩片樹葉。到這一步,你的著色器編輯器應(yīng)該是如圖4所示的設(shè)定。
所謂“十字紋”,就是讓原本升起來(lái)的部分又以十字紋的形狀下陷回去,從而形成我們想要的形狀,這時(shí)候需要新建一個(gè)分離XYZ,并用X、Y分別連接一個(gè)運(yùn)算模塊并選擇為“絕對(duì)”,然后用運(yùn)算模塊的“最大值”功能連接,再緊接一個(gè)相減,并通過(guò)顏色漸變來(lái)輸出。然后再在分離XYZ之前加入一個(gè)矢量運(yùn)算并選擇為正片疊底,嘗試設(shè)置X、Y的矢量值,可獲得如圖5的效果。
將本步驟新建的功能模塊全部復(fù)制一遍,但把矢量運(yùn)算的X、Y值進(jìn)行替換,然后把這兩個(gè)模塊組用正片疊底相乘,這樣就能形成一個(gè)十字形了。雖然我們也有更簡(jiǎn)單的方法來(lái)形成這個(gè)十字,但教程所使用的方案可以讓十字形邊緣呈坡狀,而不是垂直下落,視覺上更符合真實(shí)場(chǎng)景,而且也可以通過(guò)調(diào)整參數(shù)來(lái)改變坡度角度,程控更自由。
最后再將本步驟所做的功能模塊,用正片疊底與第一步制作的模塊在置換之前相乘,這樣就能實(shí)現(xiàn)如圖1的螺絲釘形狀了。
考慮到要在多個(gè)“螺絲”上使用這一組著色器,建議將用于置換的模塊全部以Ctrl+G進(jìn)行編組,并為映射范圍的“到最大值”、2個(gè)相減模塊的數(shù)值以及置換模塊的縮放值添加組輸入的快捷連接,并按功能重新命名為容易理解的名稱,比如“到最大值”就是“螺紋大小”,減法的數(shù)值就是螺絲頂面的“圓滑度”,而置換的縮放就是控制螺絲的“高度”。這樣一來(lái),如圖6,我們的著色器編輯器一下就簡(jiǎn)單明了了很多,反復(fù)使用時(shí)也不容易混淆了。
在今年開始做Blender系列文章時(shí)我就說(shuō)過(guò),置換是Blender著色器里非常重要的功能,它可以在零建模的基礎(chǔ)上實(shí)現(xiàn)3D圖像的輸出,而且Blender在2.93 alpha版本就開始重推幾何節(jié)點(diǎn),這也是一個(gè)全新的,足以讓人腦洞大開的新功能。雖然玩法有不同,但關(guān)鍵邏輯是互通的,著色器置換考驗(yàn)的其實(shí)就是用戶的空間想象力,怎樣通過(guò)紋理位置的數(shù)學(xué)計(jì)算來(lái)置換出形形色色的形狀,而且顯然,我們的螺絲只完成了上半部分,螺絲最重要的螺紋部分并沒有完成,那么聰明的你想不想嘗試自己研究一下呢?你能在我們下期教程推出前自己搞定嗎?我拭目以待!