在rhino建模教程中,學(xué)習(xí)犀牛建模都會(huì)了解一些其他的建模知識(shí),比如建筑類(lèi)的建模方法和特點(diǎn),如今軟件已經(jīng)漸漸不再成為約束建筑師思維的因素,而且用于很多行業(yè)的建模思維,現(xiàn)在的建模軟件與Grasshopper都會(huì)一起相互輔助使用,但是卻因?yàn)槟P瓦^(guò)于復(fù)雜,數(shù)據(jù)過(guò)多而導(dǎo)致在實(shí)際電腦建模過(guò)程中因?yàn)榭D時(shí)間過(guò)長(zhǎng)而完全無(wú)法實(shí)現(xiàn)。下面就一起來(lái)了解一下大神用GH建模窗簾的步驟吧!
STEP1、基本建模
對(duì)于下面這個(gè)窗簾的模型,相信很多對(duì)于grasshopper掌握比較深入的童鞋都可以很輕松的建出來(lái)。

但為了照顧一些剛剛學(xué)習(xí)GH的小伙伴,讓我們先花一點(diǎn)時(shí)間來(lái)回顧一下建模的主要過(guò)程:

首先,我們先繪制兩組點(diǎn),用以生成基礎(chǔ)面的上下邊緣線(xiàn),在這里我們的建模邏輯還是遵守大家所習(xí)慣的點(diǎn)成線(xiàn),線(xiàn)成面。


大家可以通過(guò)對(duì)于graph map的調(diào)節(jié)(這里選擇的是sin函數(shù)),自行控制曲線(xiàn)的形狀,可以通過(guò)對(duì)于domain區(qū)間的設(shè)置控制窗簾的長(zhǎng)度。
然后,我們只需要將上邊緣的點(diǎn)沿Z方向抬升~

再把上邊緣和下邊緣的點(diǎn)成組連線(xiàn):

數(shù)據(jù)拍平之后放樣就生成了曲面,這樣就完成我們的第一步了。

接下來(lái)我們就需要在基礎(chǔ)面上開(kāi)洞了。將基礎(chǔ)面重參(rebuild調(diào)整UV數(shù)目,使曲面uv參數(shù)分布大致均勻)之后,我們運(yùn)用lunchbox進(jìn)行開(kāi)洞處理:

大家可以注意下這里對(duì)于surface的UV細(xì)分值已經(jīng)達(dá)到了500*60,并且運(yùn)算器的計(jì)算時(shí)間已經(jīng)達(dá)到了550ms,大家應(yīng)該可以感覺(jué)到些許的卡頓了,尚在可以接受的范圍內(nèi)。
但是當(dāng)完成這一步,進(jìn)行后續(xù)操作的時(shí)候,大家就可以感覺(jué)到正確的建模邏輯和優(yōu)化手段對(duì)于GH的影響是有多么巨大。
STEP2、不同建模邏輯與優(yōu)化
我采用大部分童鞋會(huì)使用的方法,也就是傳統(tǒng)的點(diǎn)成線(xiàn),線(xiàn)成面的方法。首先用喜聞樂(lè)見(jiàn)的area運(yùn)算器提取每個(gè)面的中心(個(gè)人非常不推薦這個(gè)運(yùn)算器,具體原因后續(xù)會(huì)說(shuō)明)。

大家可以看到,area的運(yùn)算時(shí)間已經(jīng)達(dá)到9.6s了。

然后對(duì)于每個(gè)面進(jìn)行不同程度的縮放,這里咱們就使用image sampler運(yùn)算器通過(guò)圖像灰度結(jié)合remap運(yùn)算器來(lái)控制縮放值。


接下來(lái),相信百分之九十九的童鞋會(huì)做的一步是把原有的面和縮放后的面graft后merge,然后直接loft成面。從建模上來(lái)說(shuō),這樣完全沒(méi)有問(wèn)題,標(biāo)準(zhǔn)的線(xiàn)成面步驟。

但是當(dāng)我們點(diǎn)擊運(yùn)行的時(shí)候,我們可以看到loft運(yùn)算器的運(yùn)算時(shí)間已經(jīng)達(dá)到難以忍受的33.5s,但是更加難以接受的是如果你將這個(gè)loft后的面bake到Rhino之中的話(huà),即使是一個(gè)簡(jiǎn)單的縮放命令,都會(huì)讓你的Rhino卡頓長(zhǎng)達(dá)幾十分鐘,更別說(shuō)附材質(zhì)和渲染了。也就是說(shuō),雖然我們成功在grasshopper中建出了這么一個(gè)模型,卻完全無(wú)法進(jìn)行后續(xù)的使用。那么該腫么辦呢???

這就要求我們,必須對(duì)原有的程序進(jìn)行優(yōu)化了。具體怎么優(yōu)化呢?主要有兩種方式,第一種方式是局部運(yùn)算器的優(yōu)化。
在grasshopper中,有很多的運(yùn)算器都可以實(shí)現(xiàn)相同的效果,但是他們之間的速度卻有很大差異。比如提取面的中心,很多人會(huì)使用area電池進(jìn)行生成,但是通過(guò)evaluate surface電池同樣可以實(shí)現(xiàn)相同的效果。

對(duì)比之前運(yùn)用area的9.6s,我們僅僅使用100多ms就實(shí)現(xiàn)了中心點(diǎn)(即面的質(zhì)心)的提取。大大節(jié)約了運(yùn)算量和運(yùn)算時(shí)間,這也是之前我提到不推薦使用area的原因。
第二種方式則是對(duì)建模邏輯、方式的優(yōu)化了。之前也說(shuō)過(guò),大家都很熟悉點(diǎn)成線(xiàn),線(xiàn)成面的nurbs建模方式。但是在Grasshopper建模過(guò)程中,還有另外一種更為高效的建模方式:那就是通過(guò)頂點(diǎn),運(yùn)用mesh直接成面。由于在Rhino中mesh包含的信息量遠(yuǎn)小于nurbs面,因此通過(guò)這種建模方式建出的模型,占用更少的計(jì)算資源,bake出來(lái)后可以非常方便地在Rhino進(jìn)行后續(xù)地修改。
那么就讓我們看看,在GH中到底怎么通過(guò)mesh建模吧!首先讓我們回到縮放后merge那一步。

這個(gè)時(shí)候,不同于之前的之前l(fā)oft,我們先通過(guò)explode提取每組線(xiàn)的頂點(diǎn),通過(guò)trim tree講兩條要成面線(xiàn)的頂點(diǎn)放到一個(gè)組里面,再通過(guò)cull duplicate去除重復(fù)的點(diǎn)(此處再次強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu)的重要性)。
然后就到了我們生成mesh的步驟了,其實(shí)在Grasshopper中生成mesh十分簡(jiǎn)單,我們只需要一個(gè)運(yùn)算器:construct mesh。這個(gè)運(yùn)算器我們需要考慮的主要也就是兩個(gè)輸入端,V輸入頂點(diǎn), F輸入頂點(diǎn)鏈接的順序。

V端的點(diǎn)就是我們cull duplicate之后的頂點(diǎn),但是F端的輸入值就比較考驗(yàn)小伙伴們對(duì)于數(shù)據(jù)結(jié)構(gòu)的理解了,為了大家方便觀(guān)察,我通過(guò)tree branch 將眾多頂點(diǎn)中的一組提取出來(lái),再借助point list展示一下它的頂點(diǎn)順序。(tree branch+point list 對(duì)于初學(xué)者掌握數(shù)據(jù)結(jié)構(gòu)幫助非常大,同學(xué)們要經(jīng)常記得使用了。)

這個(gè)時(shí)候我們可以清楚的看到每個(gè)組里面有六個(gè)點(diǎn),編號(hào)分別是012345,并且順序是從外到內(nèi)逆時(shí)針的。我們通過(guò)mesh生成大部分面都是四點(diǎn)成面,所以對(duì)于這個(gè)面我們可以將它拆解為三個(gè)mesh部分:面0143、面1254、面2035。

(面0143)

(面1254)

(面2035)
然后將這三個(gè)mesh合并為一個(gè)mesh。

因?yàn)橹癱ull duplicate之后的數(shù)據(jù)結(jié)構(gòu)為樹(shù)形數(shù)據(jù),我們只要將tree branch這一步略過(guò),直接連接point即可。

大家可以驚喜的發(fā)現(xiàn),成面的時(shí)間變?yōu)榱?.2s(之前為33.5S),近30倍速度的提升!相信可以讓小伙伴們非常直觀(guān)的了解到GH中mesh的強(qiáng)大。

并且bake出來(lái)之后在rhino中大家可以隨意轉(zhuǎn)動(dòng)變化,而不會(huì)有卡頓。

最后的渲染就非常的輕松愉快了,加一個(gè)無(wú)限地面作為基面,加一個(gè)矩形燈打光:

給地面一個(gè)木板材質(zhì),窗簾一個(gè)織物材質(zhì),都是官方自帶材質(zhì)。

點(diǎn)擊渲染,咱們的窗簾就出現(xiàn)了。
是不是很簡(jiǎn)單呢,那就請(qǐng)開(kāi)始你們的表演吧!
上一篇: Rhino建模中的RhinoART 3D技術(shù)快速生成浮雕.. 下一篇: 一篇文章帶您透徹了解rhino這款3D軟件

