3D 模型通常用於視訊遊戲、模擬、3D 編輯、CAD 和其他電腦圖形應用程式。 3D 模型可以包含物件、角色甚至整個 3D 場景的 3D 表示,並且可以應用材質、燈光和動畫以使其非常逼真。
任何基於網格的 3D 模型的核心都是頂點和麵。頂點是 3D 空間中的一個點,模型將包含數千甚至數百萬個頂點。沒有任何面,僅由頂點組成的 3D 網格通常稱為點雲,如果渲染到電腦螢幕上,它將顯示為 3D 物件的一般形狀中的一組點。
除了頂點之外,3D 模型網格還包含面,有時稱為曲面。面將頂點連接在一起以定義 3D 物件的基本形狀。一個面至少由三個點組成,形成一個三角形網格;但是,某些 3D 模型格式,例如OBJ支援三個以上的面。除了臉部之外,3D 模型還包含臉部法線。這些只是定義臉部指向方向的向量,主要由 3D 渲染軟體用來確定臉部是朝前還是朝後。
渲染為點雲的茶壺
茶壺渲染為線框
用網格面渲染的茶壺
在大多數 3D 模型格式中,頂點儲存在連續清單中,構成面的點被定義為該清單中的偏移量。這允許多個面使用一個頂點,而無需多次定義它。有某些較舊的 3D 格式,例如 STL,不使用這種索引方法,而是簡單地為每個面指定三個頂點,忽略這可能導致的資料重複。
頂點和麵定義了 3D 模型的整體尺寸和形狀,現在我們來看看 3D 模型如何定義其外觀。這就是材料發揮作用的地方。基本材質可以包含顏色,並且可以應用於 3D 模型的各個頂點、面或部分。可以使用紋理影像檔案定義更複雜的材質。
將材質應用於各個頂點的支援並不普遍,僅支援某些格式,例如WRL和3MF ,能夠做到這一點。使用頂點材質,可以在面上不同點的顏色之間建立平滑過渡。
大多數 3D 模型格式都支援面材質,從而可以對 3D 模型的外觀進行精細控制。在大多數支援面材質的 3D 模型格式中,通常會為每個面分配一個要使用的材質的索引,以確保不會重複材質資訊。這裡我們有一個立方體 3D 模型的範例,第一張圖像使用頂點顏色顯示立方體。第二張圖片顯示了使用的單色表面材質,而最終影像顯示了使用紋理材質的 3D 立方體。
具有頂點顏色的 3D 立方體
具有面顏色的 3D 立方體
具有紋理面的 3D 立方體
除了描述 3D 物件構造的網格幾何體之外,還有一些格式,例如FBX支援動畫3D模型;這些通常是電玩遊戲和動畫電影中經常使用的角色模型,並且將包含各種描繪姿勢的動畫等。有關3D動畫的更多信息,請參考這個很棒的文章詳細描述了動畫 3D 模型。