目的:
透過Bake Normal的方法將模型的面數降低。
也就是模型在比較低的面數下,仍然透過Normal貼圖,來設定材質球,讓它保有高模的精細度。簡單的來說,就是把低面數的模型,穿上一張皮;這張皮上面畫有高面數模型的細節。
此方法應用的情境相當廣,如下圖,瓦片的數量相當驚人,若每一個瓦片都是高面數的精緻模型,將會消耗相當多的運算Cost。而整體運算消耗在種不重要的地方,相當划不來。特別是Real-time rendering的3D引擎,更是需要重視面數與資源消耗的掌握。下圖僅邊角的地方是面數較高的模型,而中間就是透過Baking Normal 來降低面數,這一整片屋瓦前面與後面人字型的面積,總共加起來只有192個面;相當精省。
前言:
Bake Normal 這其實不是什麼新技術,在角色建模的領域中,例如常見的Zbrush 、Mudbox 等雕塑模型軟體,更是常常使用這樣的技術。而這組關鍵字- Bake Normal只要餵進Google中,就可以看到各種軟體都會有這樣的技術。
本教學將使用C4D來實際操練,帶大家知道C4D 如何使用Bake Normal Map的方法。
如上圖與下圖,這些都是塑模軟體所產生的模型,面數都是高得嚇人,幾乎根本無法在Unity3D或Unreal等遊戲引擎直接使用。如下圖,可以看出,可以透過雕塑完成的模型,在上面鋪一次低面數模型,最後使用Bake normal 來產生保有原本高面數模型的細節。如此一來,既有高面數模型的精細度,又能有高效率的低面數模型可以使用。
這是怎麼做到的呢?
其實能做到在低模上Bake(有人翻成 “烘焙”) 出高模的Normal map最主要的原因是因為Normal map本身的圖裡面透過顏色定義出模擬端點移動的模型,舉例來說,Bump map這種凹凸貼圖,只能做出表面的凹凸,而Normal map卻能夠產生端點著色時的x,y,z 三維的偏移。
想了解法向貼圖 Normal map 可以點下面外部連結。老技術這邊就不多談了。
Normal Map 法線貼圖 (一)
方法:
具體在C4D裡面的操作方法如下圖六大步驟:
- 準備好高面數的模型與低面數的模型,並盡量疊合好。具體來說,低面數的模型可以略微大過高面數的模型。
- 第二步新增Bake Texture Tag在低模上面。
- 點選Bake Texture Tag,會開出選項來,可以看到其實C4D可以透過這個Tag Bake很多種Texture,我們這邊勾選Normal
- 這時候會出現來源的輸入框,可以直接把高面數模型拖曳入即可。
- Ray Casting的選項,其實是對應到UV Editor裡面的排列方式。若你已經拆好UV,可以直接選OFF。
- 點選BAKE之前,需指定一顆材質球給低面數模型。按下BAKE立即完成。
這邊針對剛剛的六大步驟補充說明一下,
- 滑鼠右鍵點選低面數模型,會跳出下面的畫面,選擇 CINEMA4D Tags就能看到Bake Texture的Tag
- 點下去就會出現一個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 可參考此影片