2009/07/08

Sub-D Modeling: The Pole 多邊形建模教學之二: "極"

subdivision surface,是3D計算機圖學的一個領域,藉由粗糙的線性多邊形網格的平滑呈現出來。經過遞歸的模型細分平滑計算過程後粗糙的表面會呈現平滑的面,是以逼近的方式產生接近平滑的表面。---Wikipedia


圖是筆者最近的作品---YAMAHA Vino機車. 看的出來建模不是我的專長, 事實上這是我第一個認真做的多邊形建模作品, 一直以來建模就是我的罩門 這個機車用的建模技巧是從看完"CGモデリングバラエティ"這本書才領悟的. 這本書用的建模技巧是比較直覺的 只要有耐心就作的出來 但是缺點就是加上turbosmooth過後模型會爛掉 因為沒有維持四邊面(quad)的布線原則. 某種程度上面Sub-D Modeling是反直覺的, 但是筆者嘗試去模仿別人作品的佈線 發現不可行.因為建模需要的是記住規則 而不是照抄布線.

這篇翻譯文是翻自知名多邊形建模論壇www.subdivisionmodeling.com, 建模專家SomeArtist所發起的數帖中的其中一帖, 後來由patrick兄整理而成; 當然啦說東西有很多不同的方法, 比方說參加TenSun の 3D製品情報 學習建模課程是其中之一, 從理論的角度來看建模又是另外一種方式 (筆者是認為找個好家教去學建模是比較快的方式). 以下:

Enjoy =)

-----以下文章翻譯自GEN_SubD-ThreadHighlights.pdf----
原文章刊載於這裡

仔細看看這張圖片裡面的三角形,因為它藏有Sub-D modeling的關鍵觀念。三角形是是3d model最小的組成單位,知道如何處理三角形你使你建模功力大為進步。事實上,看完這篇文章你就能像Bay Raitt一樣建模! (不是開玩笑! )

但首先我們必須了解”極”,並請先忘記你對”極”的既有印象!請用另一種方式來看待”極”。

(E) 與(N)極
一般來說" 極"對有機模型很不好,但你沒辦法避免使用5和3邊的極,與其害怕這兩種極為什麼不設法了解他們嗎?許多初學者不能向上提升建模功力,就是因為極阻擋了他們的進步 ,初學這會害怕極,因此拓撲變得十分困難。 5和3邊的極沒什麼大不了,而這裡我們會給這兩種極兩個特別的稱呼。

E(5)極
E極其實就是“Extrude Pole”的縮寫 。當您自四邊面做了extrude 你就會得到E極!
當您擠出的嘴,眼睛和耳朵,您將會得到得到四個享E極。當您擠出為手臂或腿 你也會產生E極。


N(3)極
當你替鼻子建模時,您將產生3邊極,而且你也沒有辦法刪除它,因為如果你刪除3邊極那麼鼻子不會看起來像一個鼻子,因此3邊極必須要在鼻子的位置(記住這一點) 。
我把這種3邊極稱為“Nose-Pole” ( N是它的縮寫) 。鼻子是一個非常特殊的建模狀況,你可以從鼻子建模中得到的“ E ”和“ N ”極,我把這種狀況稱為“EN”狀況。這種“EN”狀況當你在製作鼻子模型的時候就會遇到。如果您刪除 “EN”極的話 你將刪除鼻子的細節,而在上圖中我把E和N極以一個Loopcut隔開。 為什麼這些極的討論很重要呢? 因為極會控制你模型拓普的走向,請看看下方的圖片。

E極是無法移除的,但N極可以。因為我們無法真正消除極 但是我們可以把極隱藏起來,藏到讓大家看不到,這就是技巧。



有個好例子,這是前額到背部的N極(如果從box開始建模就會產生) 。額頭的N極你可以藏在眼睛裡面 而頭背的N極你可以藏在耳朵裡面。這樣把極藏起來的做法稱為 “ UnPole ” 稍後我將深入探討。而可以刪除N極並不代表應該刪除N極!有些N極是必須存在的,當你替人體肌肉作細部模型時你會得到很多N極 / E極 因為極會控制模型的布線流向。 複雜的模型會有很多極 反之亦然。

我跟一些有經驗的建模師常爭論關於額頭的N極。他說額頭的N極能夠讓你更容易控制模型。現在請各位想想..我們都知道,極會使我們的模型產生凹凸感。好的控制力的代價就是產生凹凸感 而大家都知道,額頭不是完全沒有凹凸感的 是完全平滑的! (額頭下面是頭骨)所以,是的,為了更好控制模型 你可以讓你模型的額頭具有。要不要留下N極完全由你自己決定。問“我應該把N極移除?” 就跟你問: “我是否有使用Ngon的能力?是一樣的意思

而問題的答案永遠是“如果這樣的結果是你想要的,那麼你就應該那樣做。建模沒有規則的。 “當你唸完我的解釋後再看看下圖你會更明了平滑與凹凸的意義。

E

當您對poly進行extrude指令你就會產稱circular flow(圖中橙色的部份) 。在某些情況下,你的circular flow上面的E極最好是在同一側(黃色) ,但是在人頭的話這個規則不適用!
( a )項:根據以下我收集的建模專家的布線圖,我們知道嘴巴的Loop是很重要的。你沒辦法E極在同一側還能產生這個Loop 所以技巧是將上面的E極移動到左側(B) 。下一次當您看到這兩個E極在同一側時 你可以確定的是他會形成Circular Loop,如果你把上面E極刪除(或是移動) 你就會打斷Circular Loop 如下圖。
如果不是把上面的E極移動到下面 而是反向操作,你就會得到如下結果。注意極,因為它們會引導你模型的布線!

"當您對四邊面做extrude你會產生EN極 而不是只有E極而已"

觀察的真好!
事實上還有更多的極我們沒考慮到。例如,當您對一個角落含有N極的四邊面做extrude的指令 你會將N極變成無極 !
請留意E極 因為調整E極的位置就能得到可預測的模型布線!完全不需要瞎猜。

關於Key-Loop/Fill-Loop 先前我Form 那帖中有提到過關於Key-Loop/Fill-Loop的概念 而你可以怎樣利用這個概念。 Key-XXX/Fill-XXX ,其中xxx可以是任何意思 而在這裡是指Key-Loop/Fill-Loop 。當你看到Edgeloop時 你就知道有許多Key-Loops你可以去Fill in



您可以利用以圖中的點/曲線作為引導。
在KeyLoop階段 極彼此很接近,而當你加入Fill時 KeyLoop開始分離開來(其實你做了Fill之後就很難讓KeyLoop合在一起)。在Fill的階段,您可以增加KeyLoop的解析度,您也可以移動某個極到你認為屬於這個極的地方。如果您一直有在wireframe參考圖的話 現在就是看這些參考圖的好時機。您馬上可以看到這些建模師都把極放在哪裡。

其實沒有絕對錯或是對,但一般的規則是:不要把極放在物體變形的區域,請看圖中青色的點 我把極擺在那裡。當我發現極位於模型變形的區域時 我會處理那的點 但是目前我暫時不管那個極。我把極留在那裡,因為看過很多其他人的作品 不一定會把極藏起來。如果您仍然害怕極 請看看Glen的這篇文章:打破對稱性

在那篇文章中Glen解釋未什麼人臉不是100 %完美。我們為什麼要忘記這個事實?人臉上有的酒窩,皺紋,等瑕疵。現在想像一下,極正好可以表現這些特點。嘿,如果有人說你的人臉模型上面有那麼多極,你就可以說,這個人出了車禍(臉受過傷)!

我們再退一步分析 除了edge loops與極的基本概念以外。請允許我說說我的想法(歡迎任何批評)我發現,有4種狀況會產生極:
1 )擠壓(extrusion)
2 )旋轉四邊面/旋轉邊緣(spin quad/ spin edge
3 )rip(這裡我Blender裡面的用語 它是用V key做出來的 稍後我會解釋)
4 )切割工具
我還發現,edgeloops也可能重疊 而不會相互影響

擠壓(EXTRUSION):
當您進行EXTRUSION動作時,可能是從面推出一隻腳或手臂,就會在模型上產生edgeloop。
有人說這類型的極是無法移除的 ?嗯..事實上你可以像這樣做:
在cut之後,會產生3對的三邊面,這可以合併成3個四邊面。產生的結果看起來有點詭異,但如果你移除鄰接的極 你就會產生共存的C loop Edgeloops。因此,您不必擔心你產生的edgeloops會對已存在的edgeloops產生不良的後果:
正如你所看到的,loops可以相互接觸,交叉或者成為其中一者的外環,真酷。因此,這意味著你可以從你的眼睛環,口環 然後拉出一個鼻環與口環相互交叉(或是mouth-nosetip loop)而不會產生任何問題。鼻子可轉換成C-loop 方法如前述。因此C-Loop產生了

這個還沒做完的頭完全是在Blender中從BOX開始以CLoop topology慢慢建造出來地。如果您是初學者,我建議您就用這樣的CLoop技術開始建模吧,因為它的簡單,沒什麼創作壓力,因為這是最棒的建模技術,可以產生驚人的模型!正如上圖中你所看到的,我做到這樣程度仍然還是用Loop這招。現在,既然我懂了以Cloop來處理拓普後 我可以來談談其他的Loops類型。以下是關鍵概念:
當我在wireframe時我會找尋極的位置 因為我會以極來參考別人的拓普 因為極會定義模型的拓普,看懂極就對了啦。最後,不要太沉迷於拓撲 回想一下先前談的SUB-D觀念,你會了解到,一個非常乾淨的拓撲並不表示在製作動畫時能正確地變型。然而對於靜態圖像/ 或是Zbrush雕刻時 乾淨的拓普是最好的。當你的模型需要變形的時候 而乾淨的拓普行不通時,你就套用我傳授你的這些技巧會比那些別人的拓普來的好用。

Poleless(無極)
這個模型是100 % 沒有極的 是在Wings3Ds 論壇上shahar2k 兄所製作的 他教我ㄧ些建模伎巧 以下是他的陳述:

你要做一些實驗,
1 –找到一個100 %四邊面的模型(只平滑一次)
2 –把所有的邊都變成硬邊
3 –再次把模型smooth一次,
4 -選擇所有的硬邊,並刪除它們,
5 -選擇所有“孤立點” ,並刪除它

以上的實驗主要是要細分你的模型 保留所有subdivided的版本 但是刪掉其他的部分。所有EPoles都會被將轉換成Ngons而所有NPoles將轉換成三邊面!移動Ngons就是移動Epoles 移動三邊面就是移動Npoles 這是一種方式或者你可以在細分後直接移動它們。一旦你得到了無極的模型 你就可以開始你學習無極建模的朝聖了,還記得Bay Raitt嗎?

無極轉換 (Poleless conversion)
Epole > Ngon
Epole --> Ngon
Npole --> Triangle
我不知道為什麼有人要這麼做,我想唯一的目的是模型之後要做動畫(變形)。無極模型的優點是,您可以選擇EdgeLoop的一邊 然後你就可以選一列的連續邊,不會有東西擋到它(無極) 。注意:不要在Blender做這個步驟

示範
以下是一個簡短但又有效的示範 在我進行完整技術說明之前。

請看看( A ) 這是我做出來的Loop。我想要這個Loop,但我想要另外一個Loop ,請看看(B)黃色的部分。這裡我們知道, 在同一列2個Es極會產生圓形流(circular flow),所以我在白色箭頭的位置做了一個極。

在我產生了圓形流後 有個問題。仔細看,你會看到,原來的布線被打斷了(綠色標示)所以,問題是:如何建立第二個布線而同時保有原本的布線? 技巧是要預先設想一步。
一個布線不能往兩個方向流!布線不能同時往左流又往右流。要做到這一點,你必須要把布線分成兩個流向。
所以,主流把它留下來,而第二個流,看你要拿第二個流做什麼囉。
與其分裂成兩個流,我這做了兩個fills 最後產生三個流。
正如你所看到的,完全不需要胡瞎猜亂建模。
還能再回頭看嗎?

從box開始Poly-by-Poly很容易做出鼻子 而我還沒想到其他邏輯來製作鼻子。如果您正在尋找鼻子的最佳拓撲 這張圖不是你要的。我記得還有更好的鼻子拓普圖,我稍後會討論Toontje的文章。
如果你做了一個格點而你在格點上做了一個spinedge, 就會產生2個N極與生2個E極。看來,在正常情況下N極的數目會恰好等於N極的數目。
正如你所看到的,在spin後,會產生兩個如同兩個相對的軌道的loops 。我可能說錯了 但我發現,你如果觀察N極會比觀察E極更容易追尋loops。如圖中你可以發現edge loops在N極旁邊轉彎。spin egde最棒的事就是你可以任意彎曲布線。唯一的缺點是每個spin edge會產生新的loop。

正如你所看到的,如果您刻意以spin edge來產生loops,你就會的到這個相當糟糕的副作用。但您可以同時使用spin quands來移除極(只要反向操作 反向spin edge)或是修正邊的流向,我會稍後解。你還記得我之前提到extrusion指令會產生closed loop?嗯,你也可以用edge Spin來產生closed loop喔 你可以自己判斷這兩種方式所產生的closed loop有什麼不同:

在這裡,您有一個closed edgeloop ,但是是在其周圍side loops。最後要提醒你的是,您可以collapse這些side loops來移除N- 與 E極
我collaps的方式用把右邊的edgeloop刪除了。在Blender中你應該可以刪除此loop,但我得到一個錯誤訊息,說這會產生自身交錯(這一定是程式的bug,因為根本就沒有交錯ㄚ) 。所以,我ㄧ個一個合併點。也許能夠以collapsing (unwanted) edgeloops作為移除極的通用模式?我必須要測試看看才能知道是否能適用於所有狀況。
今天,我要談談mesh ripping。這是在Blender裡面的指令 我不知道在其他軟體是怎樣稱呼的。如果有人知道有更好的稱呼,請告訴我。所以,mesh ripping到底是什麼? 這個指令,對模型的拓普會有一定的影響,因為它會使模型產生極。我對這項指令沒有完全掌握,但我可以跟你介紹我知道的部份。什麼是mesh ripping?有了這個工具( 在Blender裡頭是用V作為快捷鍵) ,您藉由拉出一個點來把mesh打開來。在Blender中你可以把隨之產生的洞補起來。

上圖中模型在N極處被打開。打開後,您可能要區填補那個漏洞。因此,如同spin edge,rip mesh會產生一對N一極和E -極點。像我以前說的,faceloop的方向是由N極所決定的。這樣挖出的洞形成一個菱形的開口。如果您遇到這種情況,如果你想要移除兩個極,就只要把這些N極合併在一起 就可以拿掉所有相鄰的極(因此有效地翻轉mesh rip) 。在spin edge後,你最後會得到兩個極以對角線的方式相望。用mesh rip的技術最後會產生水平或是垂直相對的兩極

到目前為止,我解釋了mesh rip有這些用處(從拓普的角度來看) :
1 )移動E極的位置
2 )產生C-loops

由於在Blender中不太支援Ngons,你必須手動使用切割工具把三邊面合併成四邊面 才能完成mesh ripping的操作。儘管如此,mesh rip仍然是非常好的工具。
首先,產生C-loops:

rip mesh的工具能夠與knife tool搭配使用。根據不同的作法,最後你會產生一個單一C-loop,或是一對鏡射的C-loop。

建立一個單一的C-loop:
在切割之後:
這是一個非常小的loop,因為我只有對單一個點進行rip

如果您想要做更大的loop,你就必須rip一排的頂點。您需要使用knife tool,來產生face loop。隨著你切割面的方式 會有不同結果。

為了獲得更大的face loop:
在這裡,我會先切割,然後再補洞,否則會在角落產生三邊面
在補洞 切割(與平滑)後 你會產生一個C-loop(順帶一提:我這邊指的C-loop是說C形loop,而不是closed loop) 。
用以上技術可以產生詭異的face loops/ edge loops,但我建議儘可能維持單純,因為簡單與可預測性就是建模好壞的關鍵。
盡可能地產生closed loop 就好像extrusion產生的那樣:
在上一個操作後,你會產生下圖:

基本上跟extrude指令的結果是一樣地。讓我們就讓我們回到剛剛所關注的議題: break指令與extrude指令基本上很類似,你可以用很多種方式來結束break mesh的操作,而每一種方式都會產生不一樣的結果。

在這裡,我將展示使用刀工具的最簡單方式,這樣的操作會產生一個mirror loop。這個結果不一定是你像要的 端看情況而定。 Break指令之後,進行補洞指令(fill the holes)。你會在每個角落產生兩個三邊面。切過這三邊面 這樣三邊面會變成兩倍,如此你就可以以join的方式根據三邊面產生四邊面(quads)了。
最後你會產生兩個重疊的C-loops:

休息片刻後 我已經嘗試了幾個方法完成loop,但某些操作的結果有點怪異,例如c-loop被兩個相反的c-loop重疊時。
你可能會認為break指令就等於vertex merge的相反指令,但事實上並非如此。在一個所有面都是四邊面的模型中,你沒辦法用break指令把vertex merge回復原狀。
但break做的是自vertex上移除一個邊!而beak會在其週遭產生多的邊。請把這個技巧先記起來 明天我會向你展示如何移動極。 基本上就是在N 極上添加一個邊 產生一個四邊的vertex (也就是正常的quad) 然後你自E 極移除一個邊 同時你又在loop 外面的一個vertex 添加一個邊。這聽起來像很複雜,但其實只是簡單的兩個步驟 。

在前面,我給你看那張有三邊面的圖 我那時候說那張圖具有掌握Sub-D建模的關鍵。
上面一行是你已經很了解的 下面一行是用到UnPole的技巧。結合UnPole技術加上Spin Quad(加上對極的了解)你就會成為SUB-D建模大師了!以下我們將介紹另外一個處理三邊面的技巧。
請記住,我並沒有發明任何特殊的技術 我只是把這個技術命個名子 讓大家能注意到這項技巧(特別第一張圖的下排) 。現在你有處理三邊面的能力了 你就可以把混亂的網格變成整齊的模型了!首先讓我們看看在SpinQuad和Unpole 。注意:如果你要在Blender中建模 你就必須要了解上面的技術 因為Blender會產生很多三邊面。

spinQuad / UnPole
SpinQuad是一個非常強大的技術,它可以立即改變布線的流向。你只要旋轉兩個面就可以了。
這項技術有兩個問題:
1 :會產生鏡像效果。
2 :會產生 N極 !
這兩個問題可以藉由unpoling N極來解決 一但N極不見了 剩下的問題也會隨之解決。
我認為Unpole的技術能清理模型的問題(除了移動極以外) 。
有兩個方法可以建立或是改面布線的流向:
1 :從極的觀點來看
如果你希望極在特定的位置 那就不要用SpinQuad的技術 因為這個技術很難在心中預想出來結果。藉由明白兩個E極在同一側會產生一個Circular flow,那從極的角度來思考就很合理了。

2 :從SpinQuad的角度來想
當你不太在乎極的時候 就使用SpinQuad。有時候用SpinQuad會比用UnPole來的好 反之亦然!
最後,您可以把這兩項技術合併。我待會會討論到Shifting poles 目前我會先打開個亂七八糟的網格 看看你能不能以三邊面的角度來思考。

我會介紹你移動極的技術。這項技術可以用Break指令來達成,或者你可以用Spin Quad來達成。
首先,是用Break指令:讓我們先看看這個標準的circular egde loop/ face loop。
Break通常會產生兩個E極。在此,我們必須在特定位置break網格/點),這樣才不會產生多的E極。邏輯上你要在有N極的地方做這件事。但是,這樣做不僅會移動到E極 而且還會隨之產生N極。但是,這項技術用在沒有'fill loops'的地方,換句話說 ,E極與N極有直接接觸的地方。
正如你所看到的,原本E極在同一個edge loop上面,現在在不同的edge loop上面了。

使用Spin Quad技術:
有很多方式可以產生Spin Quad。如前所述(我覺得) ,spin quad當成一個微調工具。經由移動極,你可以完全控制布線的流動方向。使用spin quad,如果旋轉了一個連接到N一極的邊,你會產生一對的四邊面 相互共用兩個邊。結果看起來會很像兩個三邊,但不要被騙,把它們轉成四邊面吧。 讓我們想想以下狀況:
這是經由spin quad所產生的。
SomeArtist已經告訴我們一個非常聰明的方法 藉由移除N極來unpoling。我想這項技術可以用在任何N極上面。為一個缺點是,您的模型可能會變的比較密。
在上圖中,有兩個loops在在臀部位置連接。在這裡,我要展示如何移動E極,有效地把這兩個loops分離開。這種方法可以重複做,把loops分的更開。

用SpinQuad把E極分的更開 (續)
在上圖中,你可以看到這兩個loops在臀部接在一起。要把這兩個loops分開,您可以把藍色邊中的綠色部分spin。不可以spin紅色邊,否則你把模型回復原本的狀態(沒有oops)或者,如果您做了兩次spin 兩個loop會以相反的方向流動。
綠色loops很容易處理。當你spin它時,loop就會分開來 而且是以對角線的方向分開來。您可以重覆上述動作,直到loop移動到網格的盡頭。或者您可以unpole或把它collapse掉。
也許到底要往哪個方向來對四邊面或邊做spin很難確定。你只要先在腦海裡想一下,spin後的邊必須與loop外面的水平邊對齊。因此,在這個例子裡你必須把上面的綠色邊逆時針spin一次 得到以下結果:
我如果把所有的可能性都告訴你我想我會瘋了 所以這裡我只告訴你關鍵的觀念 剩下的就有待你去發掘。我會告訴你一種方法 但是請記住,還有很多其他方法!這取決於你想要你的布線怎樣流動 以及你想怎樣處理三邊面。

移動E極(旋轉)
當您要合併兩個Es極到同一側 你只要collapse就可以了。
E極有五個邊 而你只要旋轉其中一個就行了,理論上是這樣。實際上 你是要去刪除它 這樣會移除E極 然後產生一個Ngon。重建那個Ngon 最後你會得到...
一旦你把四邊面變成一個三邊面 方法就具有無窮盡的變化。請看下圖:
相同的觀念可以反過來想:

注:這帖有8張圖像
Toontje提出了SpinQuad理論 而你把SpinQuad理論與Wrinkle technique比較一下的話你會發現有趣的是 他不但會產生wrinkle 還會產生布線流。

差別的是在於極。此外,我之前說Spin Quad不是很合乎邏輯,但是仔細看看後我現在認為一切都很合邏輯
當您進行spin edge 或quads 請記住綠色點會被轉換成E極 而橘色點會被轉換成N極。!

我之前的帖有提到這樣會產生一些問題。這個spin必須要是逆時針轉的
最後的結果是 loop會往下移動一列。但是,在spin quad之間的動作看起來會很混亂。刪除唯一的點。而實際上是,兩個四邊面共用兩個邊。刪除此點後,並填補漏洞,您就可以把兩個四邊面轉換成一個四邊面。

當然囉 在smoothing 之後會產生以下結果:
事實上你可能已經注意到只有垂直的移動。你也可以經由spin另一個邊把它垂直移動。但是就像SomeArtist說,我如果解釋所有的可能性的話 可能會瘋掉。只要你聽懂整個概念的話就夠了。接下來我將介紹cut tool。我發現,cut tool會產生難以預期的結果。你不能直接在模型上進行cut就想要獲得乾淨的edge loop。但是,我發現用一種神奇又顯為人知的技術可以解決----那就Spin Quad。使用此方法,你會產生完全乾淨的face loop,你可利用此技術來進行模型的細節化(例如角色的血管) ,我稍後說明.....
這個方法很巧妙,我很懷疑之前有人想過cut tool根本的缺陷,要不然這個方法應該很早就有人會想到了。這也就是為什麼我以前都沒辦法用cut tool切出角色的肌肉細節。
我想我不必解釋什麼是cut tool。我不知道在其他3D軟體是否功能一樣。但基本上cut tool是這樣地:


使用cut tool可以讓你切出faceloops/ edgeloops。我想你也知道你可以用cut tool切出模型的細節例如爆血管,我們現在就來試試看囉。
在切割之後 我稍微smooth了一下然後選取edge loop中間的部分。這個edge loop並非連續的 因為中間有被N極所中斷。

讓我們稍微微調一下模型 讓這個血管看起來更好看些,這似乎是一個不錯的添加細節的方法,對不對呢?

大錯!
首先記住,我已經說過face loops如何彎曲?它們會在N極轉彎!所有的face loops都會在N極轉彎!

讓我們仔細這個被切割的網格:
看看face loop會如何在N極彎曲。有個問題:face loop彎曲的位置會在這些邊上面交錯。這會產生多個face loops在模型上不正確地流動。當您使用edge loop cut時你會發現在模型的不同位置上結果會變的很難預測。

請注意當切割的方向不同時灣區的方向也會改變。所以,如果你是以C-loop 或closed loop(如extrude)的方式來切割的話,或是用cut tool實隨著角度旋轉切割的話就不會產生任何副作用。但是,一旦你作出的S-like cut就會產生問題。

所以,以上就解釋了A)為什麼再做一些簡單切割時 (如eye loops, nose loops)沒有遇到問題 ,B)而再切割模型的細節時才會讓模型整個爛掉。
在這裡,我把以cut切出來的face loops以顏色標示出來:
切割工具一度被人為是一種神奇的工具,建模師的夢想,但在這裡你看到切割工具會把你的模型切出醜陋又無用的face loops,儘管如此 我們提供您解藥 那就是低調的….或我應該說它是我們的英雄---- Spin Quad。
在這篇結束前我想強調大家都在談的edgeloops。但是,根據我的經驗,face loops是影響拓普的關鍵因素。幹!,每個建模師都會強調他們模型的face loops有多強 雖然他們在陳述edge loops的技術時是錯的。
幸運的是有個辦法可以解決。請記住,當N極在edge loop的另一邊出出了問題時?那麼,讓我們把那個造成問題的N極給抓出來。
這幾個藍色的邊必須要spin。如果在edgeloop上面的邊是以逆時針方向轉時 那你要把它你順時針迴轉回來 反之則是順時針。咦? 聽不懂嗎?,例如,圖中首先必須要做順時鐘旋轉的N極是 在"L" turn前面那個N極。想像一下你在這條loop開著車 在L-turn上面你要做反時針的彎,因此,第一個問題N極應該要順時針spin。反之亦然。

當您在進行spin edges的時候 還是得進行前面說過的修正動作。刪除孤立的點,然後補洞,然後smooth。
最後你會得到單一個face loop。為了研究問題是從何而生的:讓我們製作一下模型的血管。現在我們執行edge loop cut。

比較這張圖跟之前的圖。外觀幾乎相同,但是這張具有真正連續的loop 。它不會有極打斷這個loop。
這張圖的拓撲/網格很乾淨。跟前面那張比較起來。看不出差別嗎?
請看看標示出來的邊。在邊上面的小片段。這兩邊必須要有一個四邊面。在第二張圖是這樣。但請看第一張圖 在第二節的地方 edge loop共用一個四邊面 讓這個edge loop顯的很詭異。
當您還在整體造型階段的時候必須要維持住完美的網格 所以這時候模型有Ngon/Tris是不好的 因為你還沒要去添加細節,初學者有個習慣就是還沒準備好就在模型中添加細節。看仔細這張圖,因為你尋找的答案就在圖裡面。
1 :您看到了一個基本網格(低解析)而在它上面有另外一個網格(高解析度) 。
2 : E 與 N極,是模型細節化的關鍵。
3 :特殊情況(紅色的四邊面) ,你可以依照對角線的方向做unpole(打斷Grid)。
4 :你機會把Npole完全弄不見! (你可以把極移動到看不見的地方。有一種情況下,您可以完全把極弄掉) 。
在你為模型添加細節前,您必須要經由“ENding the Grid”(即把E 與 N引入到你的模型上)。同時請記住, Unpole不是一個添加模型細節的技術,而是清理模型與布線的技術!在這個階段你要思考的不是: “現在我應該在哪裡unpole ? 你應該要思考“現在我應該在哪裡添加EN極? ” ,因為這就是跟添加細節有關的動作。

以下實際說明。
左圖具有完美的網格(整體造型)而我另外表示了紅色的線顯示我想要怎樣佈線。
右圖我在網格上面添加了EN來達成我要的佈線,這樣就大功告成了!這就是添加模型細節的概念了。等等,這一點也不像是布線流阿!在這種情況下,微調,微調再微調,直到它看起來像一個順的佈線。
以上!,等等 我聽到有人說“怎麼可能阿”。怎麼可能這麼簡單,因為我有看過建模專家用非常複雜的佈線來建模 所以應該會用到很幅雜的技巧才對阿。 “是這樣嗎?
複雜其實一種幻覺,因為所有有複雜的東西都是由簡單元建構成地 。CG藝術家是不是神,而藝術家也不可能無中生有所以接著我們利用簡單的規則把模型複雜化吧
左圖我畫了非常複雜的佈線,要做到這點,您必須對模型再次進行EN的動作,但有個問題。問題是,基礎網格的解析度太低,沒辦法再增加細節,因此,我必須增加模型解析度(是地,就像在320x240解析度的圖上面畫東西 ...沒辦法增加太多細節是一樣地) 。
到這裡我把布線給做出來了 你可能會說 我做的佈線和我畫出來的不一致!
在這種情況下,微調 微調再微調,直到布線和我當初化的看起來一樣。有一件事你應該記住的是,你不應該強迫自己把佈線做的跟畫的完全一樣,因為在這個階段你在做的是Key-Loop。
現在 你會認為很複雜嗎?請記住,我還沒有處理模型的背面ㄟ,我這裡只是做一個簡單示範而已。
下次我會寫的更詳細 。


形成XT
第二個重點 :不要把佈線如C形那樣一路往嘴把流進去 ,而是把佈線直接往下掉。這樣做你會產生兩個極 而極也不全然都是壞的東西。 建模擬唯一需要的就是CT與和XT,這兩個東西可以讓你調整和適應模型。這篇文章我寫完後我想我在也不會用CT來製作寫實的人頭了。C Topology的問題在於下巴的位置,這讓我們很難去控制頭的模型 這就是為什麼很多人採用XT的建模方式 因為這樣讓網格更容易被微調 因為極的關係。

Ngon/Triangle
Ngon有兩種:有極的Ngon 與沒有極的Ngon。
Ngon和Npole都以字母“ N ”開頭的 (真巧)也因為這樣會比較單純。我們建模不是要看模型的面(四邊面/三邊面/多邊形面)我們其實應該要看模型的極,因為我們是藉由控制點或是極來調控mesh的變形的,而非面的本身。
以下是完整的命名方式:
QPole =因為Q看起來像“ O ”( Organic)我們稱一個點若是有四個邊連到它 稱為Qpole應該(Q=quad) 。
Xpole = 6 或以上的邊連結到點。 X =表示不好的意思。
因此,我們現在就有了X, E, N, Q等專有名詞

當我們提到Ngons 看看這張“Stahlberg”,但你真的認為他的模型就是靠Ngons做出來的 ?答案是否定的。如果你真的理解建模的奧妙,說“Stahlberg”是Npoles模型更有意義 。

當我用極的角度來看模型時 我再也不管所謂的四邊面 三邊面 多邊形面 循環邊(Ngon/Tris/Quad/Edgeloop),因為由前面的理論我們知道不考慮這些是很合理的。我們已經用極Poles (ENQ)來建模 而建模出來的結果是看我們如何擺放極 或是我們產生怎樣類型的極。理所當然,我們儘可能地使用Qpole來產生真正平順的模型,而且有好的拓普不代表模型在動起來的時候(變形)會好看,而當你用極的觀點來建模時 你真的就不會去想四邊面 三邊面 多邊形面 循環邊這些東西了。

模型要變形正確並不是因為他有乾淨的拓普 或 (四邊面)變形模型正確,而是因為能把極擺放在模型正確的位置。而當我們談到材質繪製的時候,三邊面與多邊形面不會有問題 但是極會對材質繪製產生問題。我還沒有寫一篇關於骨架, “UV” 的文章,所以這些東西留到將來再討論。

我們可以從很多方法看極:
1 :極是個壞東西,因為極會造成不光滑的表面。
我以前就是以這個角度來看待極的。我那個時候對建模感到很沮喪但冥冥中我知道極是建模的關鍵。

2 :極是為了好的佈線(Flow)
到了這個等級 極變的比較有意義,但人們還是會爭論Ngons/Tris/Edgeloop這類的東西 ...所以...

3 :偉大的極
極就可以解決所有問題。到了這個境界的時候你不會去以表面思考建模(Ngon/Quad/Tri/Edgeloop ) ,但完全以極(當然這不代表你要放棄等級 2 )來思考 。極的集合構成了模型的面 所以當你控制極時 你就能控制面 到了這種建模的境界時 你就會開始了解Stahlberg大師的精隨 與Npole的威力。

我將來會談更多有關E 與N極的事情,這裡就請你先記住E 與N極是為了要確立EdgeLoops(如果你是要以建模布線的角度來看的話)
如果是為了要增加模型細節或是最佳化的角度,我偏好使用Npole(Ngon) ,因為它比Epole(Triangle)有更高的控制度 -請見上圖。我稍後會回來打斷這個grid

----翻譯完畢----

[更多文章]

9 comments:

Victor Tsai said...

Dear Hammer,

看完這篇文章我心中一直有個疑惑,關於「極」到底是什麼?後來我去看原文,查閱了一下相關資料並且與我們幾個老外設計師討論的結果,我認為把「Pole」翻譯成「標記」比較適當,這樣也方便中文的閱讀者更容易理解。

不過這篇文章真的不錯喔!

Anonymous said...

對岸的翻譯應該是『星』,分別稱作3星跟5星。

hammerbchen said...

個人還是比較偏好"極"這個翻譯

因為North Pole是北極; Polar Bear是北極熊

標記熊跟星熊 聽起來很怪 ;) just kidding

Victor Tsai said...

好冷...呵

ARKUO said...

很棒的文章
釐清了我在sub-d建模分面時的一些盲點...

.

Anonymous said...

我是初學者 想請問 為什麼要對人物作(流)?

許小聖 said...

佳文

hammerbchen said...

小聖老師

感謝 =)

Anonymous said...

超愛這網站的
花點時間閱讀這些文章 整個觀念清楚很多