天天看點

Unity3D模型優化技巧



Unity3D引擎交流QQ群:【21568554】

為優化性能模組化角色:

下面是一些設計人物模型的技巧,以提供最佳渲染速度。

使用一個蒙皮網格渲染器

每個角色應該隻使用一個蒙皮網格渲染器 (skinned mesh renderer)。Unity 使用可見性剔除和包圍體更新優化動畫,并且隻有在使用一個動畫元件和一個蒙皮網格渲染器結合時這些優化才會激活。在單一的網格使用兩個蒙皮網格時,模型渲染的時間将花費約兩倍的時間,并且使用多個網格很少能帶來實際的好處。

使用盡可能少的材質

應該確定每個網格盡可能使用更少的材質數量。如果角色需要一種以上材質,唯一的原因是需要在不同的部位使用不同的渲染器(如:眼睛使用特殊渲染器)。但是,每個角色使用兩種或三種材質在大部分情況下都已綽綽有餘。

使用盡可能少的骨骼

一般桌上型電腦遊戲每個骨骼層次通常使用 15-60 個骨骼。使用的骨骼越少,獲得的性能更好。使用約 30 個骨骼即可在桌上型電腦平台上獲得非常好的圖畫品質,移動平台上獲得的的圖畫品質也不錯。理想狀态下移動裝置的骨骼應保證在 30 以下,而桌上型電腦遊戲也不能過多超過這一數目。

多邊形數量

所使用的多邊形數量取決于想要的品質以及遊戲針對的平台。 對于移動裝置來說,每個網格 300 - 1500 個多邊形将帶來很好的效果,而桌上型電腦平台的理想範圍為 1500 – 4000。如果在任何特定時間遊戲螢幕上都有大量角色,那麼需要減少每個網格中的多邊形數量。例如,Half Life 2 中的每個角色使用 2500-5000 個三角片。目前在 PS3 或 Xbox 360 上運作的 AAA 遊戲中,角色通常有 5000-7000 個三角片。

正向運動 (Forward Kinematics) 和反向運動 (Inverse Kinematics) 保持分離

在導入動畫時,模型的反向運動 (IK) 節點将烘焙成正向運動 (FK),是以,Unity 完全不需要 IK 節點。但是,如果将它們儲存在模型,即使不會影響動畫,也将導緻 CPU 開銷。可以按照自己的需要,在 Unity 或模組化工具中删除多餘的 IK 節點。理想狀态下,應該在模組化期間儲存獨立的 IK 和 FK 層級,以便在必要時輕松删除 IK 節點。

繼續閱讀