iT邦幫忙

1

四角面和三角面在拓樸學上的差異

  • 分享至 

  • xImage
  •  

(一) 研究目標與動機
一、模型的拓樸學(Topology)
Topology 一詞在3D模型(Three-Dimensional Modeling)的領域中,指的是3D模型表面上所分布的邊角結構,在算繪(Render)的過程中,看似雷同的兩件雕塑作品,可以在3D軟體中發見其中的不同之處。其中,邊角結構的差異性會造成在編輯面(Surface)時的難易度有所差異,也導致在動畫製作的途中有不同的難度。為何邊角結構會對3D模型有如此之影響呢?在 Sketchfab(3D素材網站)上,創作者又要如何應對不同的邊角結構所帶來的影響呢?這是一個值得去探討的議題。

二、邊角結構
模型的邊角結構可以大致分成幾種,分別是三角面(Tris)、四角面(Squad)和多邊面(N-gon)。顧名思義,三角面就是由三角形組成的表面,又稱為 Tris ;-四角面則是由矩形組成的表面,又稱Squads;而多邊面是由多邊形所組成的表面,又稱為 N-sided Polygon 或 N-gon 。由上文可知,邊角結構對3D模型本身有著巨大的影響,而此文主要探討方向就著重於上述類型中的三角面和四角面之間的差別。圖片一分別展示了不同表面所呈現的球體,分別由左至右是四角面、三角面及多邊面。
https://ithelp.ithome.com.tw/upload/images/20230406/20158742DR7BVePYJK.png
圖片一

(二) 在3D軟體上的三角面與四角面
一、以Blender進行比較
試著在Blender這款知名3D動畫軟體中做出了兩個大小相近的球體,如圖片一,會發現兩個球體之間在算繪出的圖片中,看起來無太大的區別。但當開啟框線時卻會發見兩者間的區別,圖片二,右邊的球體呈現四角面的樣態,而左邊的球體呈現三角面的狀態。
https://ithelp.ithome.com.tw/upload/images/20230406/201587420CK56vDXoN.png
圖片二

https://ithelp.ithome.com.tw/upload/images/20230406/20158742U6ejIAsUDb.png
圖片三

二、將多邊面體減面或轉換為三角面
在 Blender 當中有許多 Modifiers ,其中的 Decimate(精簡工具)中的Collapse(塌陷)能使物體的面以三角面的方式減少,其他工具如 Planar 和 Un-Subdivide 也具有這樣的功能。另一個方法是從 Face 的部分選擇 Triangulate ,來促使形體的表面改變形狀結構。

三、將三角面變換為四角面
利用 Blender 中的 Tris to Squads 功能可以促使三角面所構成的形體順利依一定比例轉換為四角面結構的形體。 而在 Sketchfab 當中幾乎所有的模型都會自動轉變為三角面結構模型,我在 Sketchfab 的討論上發現,一名名為「 Klaasnienhuis 」的 Blender 使用者提出了一個解決方案,經過他的多次嘗試,發現將 triangulate 模式關閉並將 fbx 的輸出編碼方式轉為 ASCII code 便能成功使 Sketchfab 平台上的模型以四角面的方式呈現。

(三) 三角面和四角面的優缺點比較
一、三角面的優缺點
在「Game Engine Architecture」一書中提到關於三角面的優點,其中就包含三角面本身的特性,像是三角面由三個頂點、三個邊和一個面所組成,在三角面的狀態下不可能呈現四角面中所呈現的不合理面,也因為三角面的結構最為簡單;再者,三角面本身型態無論各種角度看來都是三角面,最糟糕的結果從三角形的邊去看頂多是呈現線狀,所以大部分的3D引擎或遊戲開發者會選用三角面來作為模型的表面結構。
但是在模型製作和編輯上,三角面結構的3D模型難以進行編輯,使用 Blender 時的經驗也顯示三角面的結構使的模型無論是要變形或修改邊、點,難度都要比四角面高。
下圖為三角面結構模型之範例,圖片來源自 ATANGEO 。
https://ithelp.ithome.com.tw/upload/images/20230406/20158742DWT4koIp4i.png
圖片四

二、四角面的優缺點
四角面由四個邊、四個頂點和一個面構成,主要的特色就是邊角相互對齊,一個邊兩個面共享,表面結構易於編輯,邊線很容易能對齊。缺點如上述,四角面可能呈現不合理面,亦為不屬於同一面的表面,而且四角面的基本矩形結構相較於三角面的三角型結構較為複雜,在演算到算繪動畫的過程中較三角面結構易失真。

(四) 結論
一、製作模型時,適用四角面結構
接續(三)之二的結論,由於模型製作程序更需要整齊的邊角和排列完整的邊線,所以可以在這邊發現在3D動畫軟體中,四角面更具有優勢,使用者在四角面的狀態下更能編輯3D模型,因此四角面結構也被創作者們廣為使用。

二、遊戲製程或3D引擎套用時,適用三角面結構
此處接續(三)之一的結論可知,由於三角面結構簡單又具有穩定性,在遊戲運算時可以使遊戲中的動畫看起來更流暢,所以許多遊戲製程或3D引擎,如 Sketchfab 都會將3D模型表面結構由使用者的四角面轉換為更簡易的三角面,因此在遊戲製程或3D引擎使用上,三角面更有優勢。

1.拓樸學一詞的定義,資料來源: Turbosquid 3D Resources: checkmate-product-presentation
2.三角面、四角面、多邊面名詞解析,資料來源: 3D Mesh Topology Tip: Quads vs. Triangles,作者: Blender Newbies 2008年11月14日。
3.關於Sketchfab Forum中,Klaasnienhuis在2016年1月16日的下午4:點30分的” With fbx: quads turn into tris”主題中提到關於他實作的經驗和解決Sketchfab上出現的三角面結構問題。
4.Game Engine Architecture-Third Edition By Jason Gregory


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言