接上回預(yù)告饰潜,List Item(李斯特·愛騰木)先生委托我們造一個擁有特別表皮的房子,并且讓我們?nèi)ゴ遄雍笊缴系臄?shù)據(jù)森林收集材料。并且交給我們一張表皮的照片:
啥峡眶,這么復(fù)雜的嗎瘦黑?這樣的表皮怎么做熬└铩奇唤?才來到Grasshopper的第二關(guān),這材料到底要怎么收集捌ヒ 咬扇??
愛騰木先生看出了我們的疑慮,作為新手村遇見的第一個友好NPC廊勃,只見他不慌不忙地說:“沒關(guān)系懈贺,小菜,老規(guī)矩坡垫,你只要告訴我Index(編號)梭灿,我會幫助你吧。Let's go冰悠!”
于是你們一起走出了新手村堡妒。來到了村口...
(以上是過場動畫)
好的,這時候我們第二關(guān)就正式開始了屿脐。首先涕蚤,開局一根曲線:
然后,在Rhino中向上復(fù)制一根同樣的曲線的诵,使用我們第一關(guān)學(xué)到的Loft運(yùn)算器万栅,讓曲線成面。
TIPS烦粒!注意一下:loft曲線,無論多少根代赁,盡量是從一根里復(fù)制出來的扰她,因?yàn)閘oft需要保持曲線控制點(diǎn)一致,不然出來的曲面會很亂芭碍。
接下來徒役,需要把這個曲面分成一塊一塊的。這時候你需要一位新朋友窖壕,那就是 - 請大聲呼叫它的名字::Isotrim忧勿!? ?
Isotrim鸳吸,我們可以把這個名字分為2個熟悉的部分理解:Iso - Isolate,隔離速勇,分離晌砾;Trim,剪切烦磁。
- “那么這個運(yùn)算器的意思是把這個表面剪成一塊一塊兒的养匈?”
是的哼勇,你太聰明了!用用試試呕乎?
然而尷尬的事情再次發(fā)生了,我們的表面沒有被分割楣嘁,運(yùn)算器反而要求我們輸入Domain。這是啥意思罢湟荨逐虚?
注意觀察運(yùn)算器的提示:沒有 Domain2 的參數(shù)?平方谆膳?是指表面積嗎叭爱?但是求出表面積有啥用,我需要的是切塊笆 买雾?如果是Rhino,我肯定會先rebuild這個surface杨帽,設(shè)置好UV漓穿,再提取結(jié)構(gòu)線,曲面就是一個一個小方塊了...那怎么設(shè)置曲面的UV呢注盈?
在這里晃危,還得介紹一位新朋友:Divide Domain2? 分割面積域
Divide Domain2 和Isotrim是一對非常好的朋友老客,大家以后需要分割曲面UV別忘了找他們哦僚饭!
接下來,我們先雙擊“//”查看一下被分割后的曲面是什么樣的狀態(tài)胧砰。嗯鳍鸵,一塊一塊的小曲面。接下來我們想要在每個小曲面上畫三角形應(yīng)該怎么做呢尉间?如果可以找到對角點(diǎn)就好了...可是偿乖,如何才能找到對角點(diǎn)啊乌妒?
這時插入一個小知識點(diǎn)汹想,來培養(yǎng)一下我們GH的特殊游戲思維: Surface - Brep - Mesh 的分解
Brep,(請先單讀B再讀rep撤蚊,不是連讀Brep古掏。),是指有Boundary(邊際)的polysurface(多邊形)侦啸,比如一個Box槽唾∩デ梗或者不規(guī)則的多邊形體塊(比如一坨石頭)。
一個曲面也可以是Brep庞萍,因?yàn)橛羞呺H啊拧烦。所以我們?nèi)绻赗hino里畫好一個曲面,既可以用Surface拾取钝计,也可以用Brep恋博。
接下來,我放了個老花鏡一樣的插件Bifocals在旁邊私恬,就可以顯示出我們正在使用的電池的名字债沮。(這插件就是專門做GH教程用的,只有顯示名字一個功能本鸣,有興趣可以去Food4Rhino下載疫衩,插件推薦和下載安裝需要在后面的關(guān)卡才能解鎖哦~)
然后使用Deconstruct Brep功能對曲面進(jìn)行炸開,可以看到一個曲面分為3各部分:Faces(面)荣德,Edges(邊)闷煤,Vertices(頂點(diǎn))。所以~~~~一個曲面炸開就是一個一個更小的曲面哦~
接下來涮瞻,什么是Mesh呢鲤拿?Mesh就是網(wǎng)格,和曲面不一樣饲宛,曲面是由UV進(jìn)行劃分和定義的皆愉,由Nurbs算法生成。Mesh是多邊形算法生成的艇抠。換言之幕庐,解剖一個Mesh,得到的直接就是一個一個的多邊形家淤。
注意到了嗎异剥?Mesh炸開就沒有edge了(這里的faces也和曲面不同),反而多了個奇怪的Colours和Normals絮重。為啥霸┦佟?
嘿嘿青伤,RMIT 的高端玩家們督怜,尤其是上過參數(shù)化Studio被查理PUA過Z-brush(簡稱ZB)課程的,都應(yīng)該知道ZB里有個PolyPaint的功能狠角。啥原理呢号杠?Mesh的頂點(diǎn)是可以儲存顏色的,比如我在ZB里畫好一個圖形,涂上顏色姨蟋,放在Keyshot里渲染的時候顏色還是存在的屉凯。這就是為啥這兒能炸出個colours的選項(xiàng)。
Normals就是法線方向啦~ 這個挺重要的眼溶,以后要偏移厚度都需要設(shè)置好Mesh的法線方向哦悠砚。
TIPS! 如果你想在GH中把Surface轉(zhuǎn)成Mesh,輸入Mesh Brep會有驚喜哦~~~
OK堂飞,小知識點(diǎn)就介紹到這里灌旧,等咱們段位高了你就會發(fā)現(xiàn)大牛都玩Mesh沒人玩surface了,哈哈哈绰筛,這個以后再提节榜。
好滴,經(jīng)過上面的小知識環(huán)節(jié)别智,我們知道了surface可以通過Deconstruct Brep 進(jìn)行分解,提取出每一個小曲面的頂點(diǎn)稼稿。那......么......我們想把四邊形的曲面做成三角形薄榛,是不是可以選出3個頂點(diǎn),一連不就有了让歼?敞恋??
先把這個曲面炸開看看吧谋右!
“-羊硬猫,這頂點(diǎn)的數(shù)據(jù)這么多,叫我怎么選啊改执,我Panel拉到腳底下了都還沒顯示完啸蜜,還能不能愉快地玩耍了?辈挂?衬横?”
(突然出現(xiàn)過場動畫)
“-?您好≈盏伲” 一個滄桑的聲音從背后傳來蜂林,你轉(zhuǎn)身一看,突然出現(xiàn)一位戴著大樹帽子的奇怪老先生拇泣。
“- 我是村子后山數(shù)據(jù)森林的守護(hù)者噪叙,名叫 Param Viewer∶瓜瑁“
- “您好啊睁蕾,老先生,我想要收集數(shù)據(jù)造表皮早龟,可是還沒進(jìn)森林我就懵了惫霸,這里實(shí)在太復(fù)雜了猫缭,我該怎么走才能找到我想要的頂點(diǎn)啊壹店?”
- “年輕人猜丹,請別急,首先硅卢,你要先學(xué)會讀懂樹的語言射窒!”
(過場動畫結(jié)束)
想要識別Panel中的數(shù)據(jù),我們得先知道什么是數(shù)據(jù)的級數(shù).
This is a box. 嗯将塑,? 一級數(shù)據(jù)表示一個模型脉顿。
那么二級數(shù)據(jù)呢?
TIPS: GH中的數(shù)據(jù)起始為0点寥。
這里的二級數(shù)據(jù)(0艾疟;0)表示:一個Brep,里面分了一個組敢辩。N = 8 表示這一組里面有8個成員蔽莱。
接下來我們還能再繼續(xù)炸開這個Brep嗎?額戚长,不能了….
那要找個三級數(shù)據(jù)的案例咋辦盗冷?可以在GH中敲個square,這貨生來就自帶三級數(shù)據(jù)同廉。
接下來打開數(shù)據(jù)面板仪糖,咱們需要分三步來看哦~~
第一步,我們來理解Branch(樹枝)是什么迫肖?
仔細(xì)觀察圖中的藍(lán)色連線,Branch 就是對應(yīng)的組數(shù)蟆湖。
OK鸠天,那 (0;0帐姻;X)最后一位數(shù)就是Branch組數(shù)了稠集。可是前面為什么是0饥瓷;0 剥纷?這是什么意思呢?
其實(shí)啊呢铆,這里的0沒有實(shí)質(zhì)的意義晦鞋,比如我寫個12級數(shù)據(jù)依舊是:(0;0;0悠垛;0线定;0;0确买;0斤讥;0;0湾趾;0芭商;0;X)搀缠,前面永遠(yuǎn)都是0铛楣,你需要看幾級參數(shù)就看前面有幾個0就行。
嗯...應(yīng)該不難吧艺普◆ぶ荩總之,理解分級就是不斷不斷不斷往下往下往下分組分組分組歧譬,就像樹枝的生長勿侯,不斷地發(fā)出更細(xì)更小的樹丫,直到末端的樹葉缴罗。
Just like this...
啊, 美麗的數(shù)據(jù)樹!
那么一個組又在數(shù)據(jù)面板的哪個位置呢祭埂?請看下圖:
在這個圖中面氓,一個組里,有一列(List)的數(shù)據(jù)蛆橡,編號(Index)分別從0 ~ 5舌界,在Param Viewer里顯示N=6,數(shù)一數(shù)0泰演,1呻拌,2,3睦焕,4藐握,5是不是有6個數(shù)字呢。
接下來再細(xì)分一級:
在這里垃喊,Index就是前面的編號猾普,Item就是這個點(diǎn)的坐標(biāo)。那么回想一下我們之前的疑問本谜?該如何去尋找一個一個小曲面上的點(diǎn)在哪里呢初家?辛孵??
我們只要找到這個曲面的List Item不就行了嗎躏将?哇>┤颉!掖肋!原來是這樣F推稀!培遵!
接下來我們總結(jié)一下:
第一級數(shù)據(jù)表示這是一個模型浙芙,第二集數(shù)據(jù)表示這個模型有多少組(List)。第三級數(shù)據(jù)表示這個組有多少個成員(Item)籽腕。
這就是為啥要用List Item去尋找需要的連線點(diǎn)的原因嗡呼。理解了數(shù)據(jù)位置的底層邏輯也為后面我們進(jìn)行數(shù)據(jù)翻轉(zhuǎn),路徑設(shè)置皇耗,簡化數(shù)據(jù)等高級操作的打下基礎(chǔ)南窗。
恭喜解鎖!@陕ァ万伤!懂樹的人!N卦敌买!
(一個15幀的過場動畫來了)
拿到了Param Viewer老先生給的數(shù)據(jù)地圖,你突然明白了如何去尋找需要的材料在哪里阶界。轉(zhuǎn)頭看看身旁的愛騰木屠夫虹钮,瞬間覺得他比以前親切了很多。
接下來膘融,我們回到任務(wù)案例中:
要做出這樣三角形的表皮芙粱,我們只需要對角連線即可!一起來應(yīng)用一下剛剛學(xué)到的知識吧氧映!
在炸開我們細(xì)分完畢的曲面以后春畔,對Vertices連上4個List Item,分別給與0岛都,1律姨,2,3臼疫,這樣就可以把每一組的點(diǎn)都找出來线召!
在這里我用了個Point List來顯示一組點(diǎn)的Index,可以很明顯注意到每一個組里的點(diǎn)與其他組的點(diǎn)都有重合的部分多矮,因?yàn)轱@示的Index重疊了缓淹,這也就是為什么后期我們會有刪除重復(fù)點(diǎn)的操作哈打。后話后話...
接下來的連線就非常非常簡單了!
0 到1讯壶,1到3料仗,3再回到0,走個0 - 1- 3 - 0 的順序不就可以了嗎伏蚊?
這時立轧,我們需要使用一個新朋友來幫助我們把這些點(diǎn)按照順序組合在一起。那就是大章魚Mergeu锏酢7崭摹!
請看一下gif動圖:
大章魚Merge有很多觸角比伏,如果你把運(yùn)算器放大胜卤,會發(fā)現(xiàn)有個小的加減號,表示輸入端可以增加或者減少赁项。
還記得0 - 1- 3 - 0 的順序嗎葛躏?我們用List Item提取出需要得點(diǎn)以后,通過大章魚的合并能力悠菜,這四個點(diǎn)按照順序又重新分成了一個新的組啦~
“嘿舰攒,某羊,我經(jīng)郴诖祝看到有GH大神在使用一個大麻花來合并數(shù)據(jù)摩窃,這個剛才的章魚有啥區(qū)別啊芬骄?”
“這個大麻花叫Enwine猾愿,是用來合并組的,就是很多組在一起成一個新的大組德玫,咱們現(xiàn)在需要的是合并Item成一個新的組,所以新手階段先用大章魚~ 以后升級了椎麦,在使用Kangaroo插件的時候一定會再見到它的宰僧。”
接下來,我們進(jìn)行一個組合操作:Polyline + Boundary Surface??
這是一套常用的GH fighting Combo!!! 作用和在Rhino中先選中多邊形線條(Polyline)嘁捷,再轉(zhuǎn)化為曲面(Boundary Surface)是一個原理造成。要熟記哦~
來,動圖演示:
恭喜你剛剛解鎖了一項(xiàng)新的成就I故骸4 !點(diǎn)線面9穆场T坦臁!
接下來我們要做表皮突出的三角形了骇吭。仔細(xì)觀察一下橙弱,他們和表面上的三角形不是相同的形狀,而是...小方塊的中點(diǎn)垂直上升了一個點(diǎn)燥狰,再與四邊形的兩個對角進(jìn)行了連線生成的一樣棘脐。
那我們是不是找到這個中心點(diǎn)就迎刃而解了呢?怎么去找傲隆蛀缝?
其實(shí)很簡單的,首先净当,我們把原來經(jīng)過UV劃分以后的曲面偏移出來内斯,再取每個小曲面的中點(diǎn),不就行了嗎像啼?
So easy~
(以下是Gif動圖演示:)
TIPS!? m2 面積運(yùn)輸器,求面積用得很少忽冻,常常用于求曲面的中點(diǎn)真朗!在GH中敲:area 可以把它召喚出來。
同理可得:m3立方運(yùn)算器僧诚,也不是常用于求立方遮婶,反而用于找出立方體的中點(diǎn)。
在這里注意一下方向湖笨,因?yàn)槲倚枰嫦?y軸的方向偏移旗扑,所以在這里給的值是負(fù)數(shù)。
OK慈省,找到偏移后的中點(diǎn)啦臀防,那是不是再做一遍我們剛剛的連線游戲就可以了?边败?袱衷?
現(xiàn)在我們需要的3個面都有了,看起來還不錯哦笑窜!
接下來最后一步啦致燥,我們不能就這樣導(dǎo)出一層薄薄的皮兒吧,擠出一個厚度試試排截?嫌蚤?辐益?
完了荷腊,最后關(guān)口卡殼了...這個曲面那么多方向,我要怎么去找凹被恕女仰?
朋友,別慌抡锈!評估曲面(Evaluate Surface)來幫忙疾忍!
這咋個評估啊床三?
我們先看看Evaluate Surface的官方解釋:
關(guān)鍵詞:uv/ Normal / vector
我們要做擠出一罩,最重要是知道方向在哪里,那么把這個運(yùn)輸器連接上以后撇簿,有個Normal(法線方向)的輸出端聂渊,而且輸出的類型(Type)是向量(Vector)。那么四瘫,連接向量的運(yùn)算器又是哪個呢汉嗽?
這時,一個歡快的聲音傳來找蜜,只見一個精神小伙穿著一個帶字幕A的T-shirt向我們跑了過來饼暑。
“嗨,大家好洗做!我是專門來幫助你測量向量長處的弓叛,我叫Amplitude,可是簡稱我為:Amp”
接下來我們看看Amplitude連接在哪里吧诚纸!
(動圖演示)
可是撰筷,目前的擠出厚度太大了,我要怎么調(diào)薄一點(diǎn)呢畦徘?Amplitude...幅度...向量長度...這里面肯定有個數(shù)值毕籽,那怎么縮小這個數(shù)值呢?
在GH游戲中旧烧,我們通常使用乘以一個小于1的數(shù)來進(jìn)行數(shù)值的放大縮小影钉。
“對了奈虾,評估曲面的Point你怎么連接的是中點(diǎn)岸崴廉赔?”
“因?yàn)檫@里做的是擠出,連接中點(diǎn)起個定位的作用匾鸥±”
“哦... 可是我看大神都連的都是最近點(diǎn)啊勿负!”
"放心吧馏艾,等我們升級了以后會用到的!"
接下來我們學(xué)習(xí)本章的唯一的快捷鍵:
Ctrl+G奴愉,給選中的運(yùn)算器打組琅摩。
和Rhino中的操作是一樣的。再右鍵單擊打好的組锭硼,可以給組改樣式房资,改名字,改顏色檀头。
然后復(fù)制這組運(yùn)算器給其他需要擠出的曲面轰异。
有興趣的朋友還可以做一下三角形之間的連接桿件哦~? 提示:連接兩個三角形的頂點(diǎn)成線,再Pipe一下就可以啦蒋荚。
等等戳稽,做到這里的朋友們先別關(guān)文件,有個比拿成就更好的小技巧要交給你F谏>妗!
TIPS!! 在Bake之前先內(nèi)置化數(shù)據(jù)播赁,就不需要額外的rhino文件啦颂郎!以后一個GH文件就可以包含所有的圖形了~
最后Bake到Rhino里看看吧!(先在Rhino里分好組容为,比如Glass乓序,redPanel,bulePanel坎背,greyPanel替劈,Pipe,再依次去GH里點(diǎn)擊Bake得滤,選擇需要的圖層陨献,這樣你的rhino文件就不亂啦~)
在這里,我就用備課時做的表皮渲染一下看看最終效果吧懂更!還是挺像的眨业,嘿嘿急膀。
過場動畫:
經(jīng)過一天辛勤的勞動,我們終于建造出了愛騰木先生需要的奇怪表皮聘殖。正準(zhǔn)備好好休息一下晨雳,突然背后又傳來那個滄桑的聲音:
“學(xué)會解讀數(shù)據(jù)森林的語言只是第一步,接下來還有很長的路要走呢奸腺!”?
只見森林守護(hù)者Param Viewer面帶微笑地對我們說:“年輕人悍募,我明天再帶你去一個新的地方,這里洋机,你將學(xué)習(xí)到掌握樹木生長的神奇魔法坠宴!”
本章結(jié)束:
小作業(yè),請?jiān)囋嚳醋约河眠B點(diǎn)的方法做更有有意思的幾何表皮吧绷旗!
(畫外音)
“某羊喜鼓,這些英文看起來好難,我要怎么準(zhǔn)確地敲字跋沃庄岖?”
“所以要使用Rhino 英文版啊角骤!”
“咚咚” (某羊又被揍了)“開啥玩笑隅忿,我軟件都要漢化版的好不?你這只崇洋媚外的臭羊邦尊!”
“不是啊…我一開始也很不習(xí)慣的背桐,但是GH沒有漢化版的,它本身就是打包好的編程組件蝉揍。話說...你有見過有人用漢語來編程的嗎链峭?”
“沒有…”
“所以還不如早點(diǎn)習(xí)慣英文版的Rhino咯,這些名稱看多了敲字就簡單了坝终础弊仪!”
作者簡介:土冒某只羊?
澳洲皇家理工RMIT 建筑系研究生,今年7月家里蹲兒大學(xué)畢業(yè)了杖刷。
熱愛參數(shù)化設(shè)計励饵,異形建模,3D打印滑燃。熟悉Rhino+GH役听,也會一點(diǎn)Maya, Zbrush, 一知半解C#禾嫉。