幾何節(jié)點(diǎn)編織-圖文版

昨天的編織視頻,有同學(xué)問能不能出個教程,但我懶得再剪視頻了,就用圖文做個講解吧,如果這里有沒說清楚地方,可以隨時(shí)留言給我。
首先說明一下,這個節(jié)點(diǎn)組的通用性比較差,不能直接套在任意的對象上,如何提高它的通用性,目前已經(jīng)不是我能解決的問題了,所以我們只能具體對象具體分析。
首先說說這個編織節(jié)點(diǎn)的基本實(shí)現(xiàn)原理。
把對象的經(jīng)緯線拆分開,這是所有操作的基礎(chǔ)
沿著對象的原始形狀對經(jīng)緯線做波浪化處理(形成編織效果)
下面是實(shí)現(xiàn)的過程,圖文里我們換一個新的對象,這次使用參數(shù)化形狀的雙曲面(Hyperboloid)做例子。
至于怎么繪制參數(shù)化形狀,在以前的視頻中我做過好幾個例子,這里就不贅述了。

雙曲面的分辨率這次做的是128*128,請注意,分辨率會直接影響到最終的編織效果,但究竟應(yīng)該怎樣選,我現(xiàn)在也不知道規(guī)律,針對不同的對象,請多做嘗試,找到最合適的分辨率。
將對象的經(jīng)緯線拆開(就是線框的橫線和豎線拆成兩部分,分別處理)。
最先想到的方法是直接將曲面轉(zhuǎn)為曲線,這樣同時(shí)就得到了經(jīng)緯線

但這樣做得到的不是經(jīng)緯線,而是一段一段的短線(使用Trim Curve就會發(fā)現(xiàn)這個問題,而我不知道怎樣連接多條短曲線成為一條長曲線,所以這樣做是行不通的)

所以,這里采取的方法是通過分離邊,實(shí)現(xiàn)經(jīng)緯線的拆分。這個方法也不是通用的,我能確定的是利用uv計(jì)算的參數(shù)化形狀肯定適用,但預(yù)設(shè)的幾何對象因?yàn)樗饕煌?,這個方法是不好用的。

這里我們看到,經(jīng)線(豎著的)沒問題,緯線(橫線)看起來卻多出了一根沒用經(jīng)線連接(x軸的負(fù)方向上),這是原始Gird的一條邊,而且在邊的狀態(tài)并不容易刪除這根線,所以直接把緯線轉(zhuǎn)換成曲線,然后利用索引關(guān)系,把緯線最上、最下和這根多余的經(jīng)線刪除了(操作省事,實(shí)際上少了兩條線,但問題不大)

然后是沿著原始形狀,對經(jīng)緯線做波浪化處理。這個實(shí)際上比較簡單,針對一條線,每隔一點(diǎn)(索引模2)沿著法線方向向內(nèi)偏移,另一點(diǎn)向外偏移,就形成波浪了。
下面是實(shí)現(xiàn)要求的最簡單節(jié)點(diǎn)組,需要注意的是,這里點(diǎn)沒有像內(nèi)偏移,這樣會出現(xiàn)編織時(shí)無法穿插的情況,所以要做下調(diào)整,把選區(qū)變?yōu)榉较蛑敢?/p>
將模2的結(jié)果(0,1)映射到(-1,1)指定法線的偏移方向,再設(shè)置偏移的縮放,就可以實(shí)現(xiàn)雙向偏移效果

然后要針對曲線,每隔一條曲線翻轉(zhuǎn)一下向內(nèi)向外的偏移,這樣就形成了編織的扣子。做法就是將曲線的索引模2,然后將法向縮放翻轉(zhuǎn)。

注意,上面的節(jié)點(diǎn)組雖然只用了一個index,但它有兩重含義,連接到set position的,指的是每條線上“點(diǎn)”的索引,連接到map range的,指的是每條曲線自身的索引。(幾何節(jié)點(diǎn)的逆推形的結(jié)構(gòu),從右到左決定屬性,而不是從左到右)
到這一步后,后面的過程就是組合經(jīng)緯線,實(shí)現(xiàn)最終的效果了。
還有一點(diǎn)要說的就是,如果發(fā)現(xiàn)經(jīng)緯線的偏移恰好重疊了,就再翻轉(zhuǎn)一下其中一方的法線縮放即可。最終的全部節(jié)點(diǎn)組如下


可以看到x軸的負(fù)方向還是有穿幫,但是——真正的編織物也有起頭和收尾的地方吧,所以就不要求那么高了(笑)
那么,這個圖文就到這里了,有任何問題歡迎留言。