Bake Normal Map 極致模型面數優化 – 把低模穿上高模的皮

Bake_normal_feature_pic

目的:

透過Bake Normal的方法將模型的面數降低。

也就是模型在比較低的面數下,仍然透過Normal貼圖,來設定材質球,讓它保有高模的精細度。簡單的來說,就是把低面數的模型,穿上一張皮;這張皮上面畫有高面數模型的細節。

此方法應用的情境相當廣,如下圖,瓦片的數量相當驚人,若每一個瓦片都是高面數的精緻模型,將會消耗相當多的運算Cost。而整體運算消耗在種不重要的地方,相當划不來。特別是Real-time rendering的3D引擎,更是需要重視面數與資源消耗的掌握。下圖僅邊角的地方是面數較高的模型,而中間就是透過Baking Normal 來降低面數,這一整片屋瓦前面與後面人字型的面積,總共加起來只有192個面;相當精省。

屋瓦通常放在比較高的地方,場景裡面的攝影機只能在遠景的時候拍到。近景只能拍到側面。

前言:

Bake Normal 這其實不是什麼新技術,在角色建模的領域中,例如常見的Zbrush Mudbox 等雕塑模型軟體,更是常常使用這樣的技術。而這組關鍵字- Bake Normal只要餵進Google中,就可以看到各種軟體都會有這樣的技術。

本教學將使用C4D來實際操練,帶大家知道C4D 如何使用Bake Normal Map的方法。

出處: Artstation – Chao Dong

如上圖與下圖,這些都是塑模軟體所產生的模型,面數都是高得嚇人,幾乎根本無法在Unity3D或Unreal等遊戲引擎直接使用。如下圖,可以看出,可以透過雕塑完成的模型,在上面鋪一次低面數模型,最後使用Bake normal 來產生保有原本高面數模型的細節。如此一來,既有高面數模型的精細度,又能有高效率的低面數模型可以使用。

這是怎麼做到的呢?

出處: Zbrushcentral

其實能做到在低模上Bake(有人翻成 “烘焙”) 出高模的Normal map最主要的原因是因為Normal map本身的圖裡面透過顏色定義出模擬端點移動的模型,舉例來說,Bump map這種凹凸貼圖,只能做出表面的凹凸,而Normal map卻能夠產生端點著色時的x,y,z 三維的偏移。

想了解法向貼圖 Normal map 可以點下面外部連結。老技術這邊就不多談了。

Normal Map 法線貼圖 (一)

方法:

具體在C4D裡面的操作方法如下圖六大步驟:

  1. 準備好高面數的模型與低面數的模型,並盡量疊合好。具體來說,低面數的模型可以略微大過高面數的模型。
  2. 第二步新增Bake Texture Tag在低模上面。
  3. 點選Bake Texture Tag,會開出選項來,可以看到其實C4D可以透過這個Tag Bake很多種Texture,我們這邊勾選Normal
  4. 這時候會出現來源的輸入框,可以直接把高面數模型拖曳入即可。
  5. Ray Casting的選項,其實是對應到UV Editor裡面的排列方式。若你已經拆好UV,可以直接選OFF。
  6. 點選BAKE之前,需指定一顆材質球給低面數模型。按下BAKE立即完成。

這邊針對剛剛的六大步驟補充說明一下,

  1. 滑鼠右鍵點選低面數模型,會跳出下面的畫面,選擇 CINEMA4D Tags就能看到Bake Texture的Tag
  2. 點下去就會出現一個Tag的Icon出現在低模的模型視窗內。

3. 要選擇勾取Normal

4. Source的地方是關鍵,要把高面數精緻模型拖曳到Source的地方。

5. 可以看看下圖,Ray Casting中的 Optimal Mapping的選項,跟切換到UV Editor模式裡面看到的Optimal Mapping是一模一樣。也是連動的,因此若你沒有新增材質球在低模上面,它是無法自動幫你拆UV的。而這邊的選項Cubic / Angle,不同的模式即代表不同的自動UV規劃。

6. Bake好以後,可以點選下面顏色看起來藍藍紫紫的貼圖,這時候會跳出下面的視窗,只要按下磁片的ICON,就能存出Normal Map。這就是我們要的法向貼圖(Normal Map)。

最後我們可以把此Normal貼圖,貼回去那顆低模身上的材質球,新增一個Normal Channel將此Texture回貼,這時候在View port中就能看到預覽效果。

也可以按下Render渲染一下,看看這次做出來的Normal Map效果好不好囉。

小提示: 若渲染出來的效果有點奇怪,可以把Phong Tag中的Angle Limit取消勾選。如下圖。

以上就完成了,是不是非常簡單呢?

但其實Bake Normal Map的成敗跟 模型網格 (Mesh)的拓樸 (Topology) 非常有關係。這有機會可以再另文研究介紹,但你可以嘗試在 Round corner 或是 Edge的地方,嘗試不同的拓樸規劃。會有不同的收穫。

實作:

下面是以不同的面數低模,進行Bake Normal的效果展示。

下圖中的上方是高面數模型 (366面),最下面是低面數(10 面)的模型,左邊是Bake完以後的效果。

第二次嘗試,新增了更多特徵,低面數模型的面數來到的51面。Bake完成以後,可以看出效果相當優異。51面看起來跟366面的模型外觀,旗鼓相當。

最後我們做個比較,原始高模366面 / 中低模 51面 / 超低模 10面。

當然這個建模方法,可以搭配LOD的設定來使用,可以讓效能大大的提升。

結論:

此方法是模型面數優化必備的基本功夫,可視目標裝置的優化目標,搭配LOD可以做到模型效能的終極優化。且幾乎所有的3D動畫建模軟體都具備這個功能,因此可以說是必學的技能喔。

延伸討論,如下我們製作出來的Normal Map亦可再匯入Substance做更多細節與材質的編修,讓效能與視覺達到最棒的平衡。

本文討論到此。

參考:

C4D Bake normal參考

雕塑模式也能Bake

Blender User 可參考此影片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *