找回密碼
 注冊帳號

掃一掃,訪問微社區

網格(meshes)

2015-1-6 16:36| 發布者: 楊炎| 查看: 2019| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 網格(meshes)網格組成很大一部分三維世界坐標。除了一些資源商店插件之外,unity 不包括建模工具。不過 unity 與大多數三維建模包之間具有很強交互性。unity 支持三角形或四邊形網格。nurbs、nurms 和 subdiv 表面必 ...

網格(meshes)

網格組成很大一部分三維世界坐標。除了一些資源商店插件之外,unity 不包括建模工具。不過 unity 與大多數三維建模包之間具有很強交互性。unity 支持三角形或四邊形網格。nurbs、nurms 和 subdiv 表面必須轉換為多邊形。

三維格式

您可使用兩種主要的文件類型將網格導入至 unity:

導出的三維文件格式,如.fbx 或 .obj

專有的三維應用文件,如 3d studio max 或 blender 中的.max和.blend文件格式。

這兩種類型的文件可幫助您將網格導入至 unity,但在選擇文件類型時,您需要考慮使用哪種文件格式:

導出的三維文件

unity 可讀取.fbx,.dae(collada)、.3ds.dxf.obj文件,您可在此找到 fbx 導出程序,也可查找可用于多種應用的 obj 或 collada 導出程序

優勢:

僅導出所需數據

使用可驗證的數據(在 unity 重新導入至三維資源包)

文件通常更小

鼓勵使用模塊化方法 - 例如,根據碰撞類型或交互性選擇不同組件

支持其他三維包(我們不直接支持其專有格式的三維包)

劣勢:

原型和迭代的管道運行速度更慢

更容易丟失源(工作文件)和游戲數據(如導出的 fbx)之間的版本信息記錄

專有三維應用文件

unity 也可通過轉換導入專有三維應用程序文件:maxmayablendercinema4dmodolightwavecheetah3d文件(如.max.mb.ma等)。優勢:

快速的迭代過程(節省源文件和 unity 重新導入時間)

簡化的初始階段

劣勢:

使用 unity 工程的所有機器都必須安裝有許可證的軟件副本

無用數據會大大增加文件大小

文件太大會降低 unity 更新速度

驗證減少 故障排除難度增加

下面是一些針對直接支持的三維應用程序的指導,其他三維應用程序通常可以導出上面列出的文件類型。

maya

cinema 4d

3ds max

cheetah3d

modo

lightwave

blender

紋理

unity 會按照特定搜索計劃,在導入時自動查找網格使用的紋理。首先,導入器會在網格所在的相同文件夾中或任何父文件夾中查找名為“紋理”(textures) 的子文件夾。如果此查找失敗,則會對工程中的所有紋理執行詳盡搜索。雖然稍微較慢,不過詳盡搜索的主要劣勢在于工程中可能存在兩個或更多同名紋理。在此情況下,不保證將找到正確的紋理。

將紋理置于處于資源級別或該級別以上的紋理 (textures)文件夾中

用于模型的 fbx 導入器選項

材質生成和分配

對于每個導入的材質,unity 將應用以下規則:-

如果禁用材質生成(即取消選中導入材質 (import materials)),則將分配默認漫反射材質。如果啟用,則將執行以下操作:

unity 將基于材質命名 (material naming)設置為 unity 材質選取名稱

unity 將嘗試查找具有該名稱的現有材質。材質搜索范圍由材質搜索 (material search)設置定義。

如果 unity 成功找到現有材質,則會將其用于導入的場景,否則會生成新材質

碰撞組件

unity 使用兩種主要類型的碰撞組件:網格碰撞組件基元碰撞組件。網格碰撞組件是使用導入的網格數據的組件,可以用于環境碰撞。在“導入設置”(import settings) 中啟用生成碰撞組件 (generate colliders)時,會在將網格添加到場景時自動添加網格碰撞組件。對于物理系統而言,會將其視為固體。

如果在四處移動物體(例如汽車),則不能使用網格碰撞組件。而是必須使用基元碰撞組件。在此情況下,應禁用生成碰撞組件 (generate colliders)設置。

動畫

動畫會從場景自動導入。有關動畫導入選項的更多詳細信息,請參閱 mecanim 動畫系統中關于資源準備和導入的部分。

法線貼圖和角色

如果某個角色具有從高多邊形版本的模型生成的法線貼圖,則應使用 180 度的平滑角度 (smoothing angle)導入游戲質量版本。這會防止由于切線拆分而在光照中形成看起來奇怪的對接處。如果使用這些設置時仍存在對接處,請啟用跨 uv 對接處拆分切線 (split tangents across uv seams)

如果將灰度圖像轉換為法線貼圖,則無需擔心這一點。

混合形狀 (blendshape)

unity 支持混合形狀(blendshape,也稱為變形目標或頂點級別動畫)。unity 可以從.fbx(混合形狀 (blendshape) 和控制動畫)和.dae(僅混合形狀 (blendshape))。unity 混合形狀 (blendshape) 支持頂點、法線和切線上的頂點級別動畫。網格可以同時受皮膚和混合形狀 (blendshape) 影響。使用混合形狀 (blendshape) 導入的所有網格都將使用蒙皮網格渲染器(無論其是否具有皮膚)。混合形狀 (blendshape) 動畫作為普通動畫的一部分導入 - 它僅在蒙皮網格渲染器上對混合形狀 (blendshape) 小組件進行動畫處理。

可通過兩種方法導入具有法線的混合形狀 (blendshape):

法線 (normals)導入模式設置為計算 (calculate),這樣會將相同邏輯用于為網格和混合形狀 (blendshape) 計算法線。

將平滑組信息導出至源文件,這樣 unity 將通過平滑組為網格和混合形狀 (blendshape) 計算法線。

如果希望混合形狀 (blendshape) 上具有切線,則將切線 (tangents)導入模式設置為計算 (calculate)

h提示

盡可能將網格合并在一起。使它們共享材質和紋理。這具有巨大的性能優勢。

如果需要在 unity 中進一步設置對象(添加物理、腳本或其他超棒內容),請無需苦惱,而是在三維應用程序中正確地命名對象。使用大量類似于pcube17或box42的對象并不有趣。

使網格在三維應用程序中的世界坐標原點上居中。這會使它們更容易放置在 unity 中。

如果網格沒有頂點顏色,則 unity 在首次渲染網格時會將一組全白頂點顏色添加到網格。

unity 編輯器顯示太多頂點或三角形(與三維應用程序的顯示相比)

這是正確的。您所看到的是實際發送給 gpu 進行渲染的頂點/三角形數量。除了材質需要將它們發送兩次這類情況,與建模應用程序的顯示相比,硬法線和非連續 uv 這類其他內容顯著增加了頂點/三角形數量。三角形在三維和 uv 空間中都必須連續以形成剝離,因此在具有 uv 對接處時,必須創建退化三角形才能形成剝離 - 這會增加數量。

另請參閱

為優化性能建模角色

如何使用法線貼圖 (normal maps)?

如何修正已導入模型的旋轉?

相關閱讀

文章點評
相關文章
女校游泳队彩金