圖形顯示的優化
簡單來說就是「結合!結合!結合!」(combine! combine! combine!)
Mesh 儘可能結合,Material 和 Texture 儘可能共用。
一個 Mesh 建議使用的面數在 1500~4000 之間。
一個 Mesh 建議只用一個 Material。
注意:兩個Mesh結合成一個Mesh,但是卻使用兩個 Material,並不會提高效能。
如果要提高效能必須把這兩個Mesh的Material也合併成一個。
換句話說,一個Mesh使用多個 Material 和一個 Material 使用多個 render,其實耗能是差不多的。
所以,儘可能的讓物件共用相同的 Texture 才是提昇效能的根本之道。
Pixel Light
Pixel Light 非常耗能,如果想要在舊電腦上也跑得很順,
可以在 Edit->Render Settings 中把 Pixel Light Count 設成 0。(完全不使用 Pixel Light)
你也可以根據每個 Light 的重要度,分別設定。
重要度高的 Render Mode 設成 Force Pixel 。
不重要的設成 Force Vertex。
Layer 管理
地上的小石頭或瓦礫之類的小東西產生的影子比較不明顯,
我們可以把這些東西設在同一個圖層。
並利用script中 Camera.layerCullDistances 功能
變更參數控制顯示的距離。
function Start ()
{
var distances = new float[32];
// Set up layer 10 to cull at 15 meters distance.
// All other layers use the far clip plane distance.
distances[10] = 15;
camera.layerCullDistances = distances;
}
Shadow
影子的計算完全依靠 GPU。
Soft shadow 比 hard shadow 多花費GPU效能。但是兩者使用的 CPU 與 記憶體是相同的。
Anti-aliasing 也是完全靠 GPU計算。
Anisotropic Textures 也是完全靠 GPU計算,建議在 天花板或是地板的 Texture 上使用。
關於實時陰影的優化
,請參考 叫你自由 前輩所寫的這一帖:
http://bbs.vrsh.cn/thread-2263-1-2.html
■Texture 2D
Unity
讀取 PSD檔之後,會自動將圖檔平面化縮壓,並不會讓製作的遊戲變大。
Texture 的長寬的大小最好由下列數字中挑選:2、4、8、16、32、64、128、256、512、1024、2048。
Texutre 不一定要是正方形的,長方形也可以。
如果 Texture 的大小不是由上方數字所組成的,那麼圖形將會稍微多耗用一些的顯卡的記憶體,讀取時也會稍微變慢。
所以特殊的 Texture 大小建議只使用在 GUI
上。
Mip Maps
使用 Mip Maps 大約會多占用 33%的記憶體,但是可以大幅提昇效能。
所有的 Texture 都建議使用 Mip Maps,唯一不需要使用的是 GUI的 Texture。
■Shader 效能 (Normal、Transparent、Transparent Cutout、Self-Illuminated、Reflective、Lightmap)
由上→下,左→右,愈來愈耗能。
Vertex_Lit -> Decal
-> Diffuse Fast -> Diffuse ->Diffuse Detail
->Bumped ->Specular ->Bumped Specular
-> Parallax Bumped -> Parallax Bumped Specular
附件中有比較清楚的圖示。
■角色(charcater)最佳化
一、每個Mesh只使用一個 Skinned Mesh Renderer。
二、不要使用太多的Material。
唯一需要使用不同的 Material 的原因,應該是你想要使用不同的 shader。
一個角色使用 2~3 Material 應該就能充份表現效果
。
如果角色可能會換武器,人物和武器的Material應該要分開,
三、減少 bone 的數量
角色 bone的數量限制通常在 15~60 之間,通常 30 個bone 已經可以做到很好的效果。
強烈建議一個角色的 bone 數量在 30 個以內。
四、polygon 面數
面數建議在 500~6000之間。
HL2 的面數是 2500~5000、次世代遊戲角色的面數在 5000~7000。
五、將IK 與 FK 嚴格區分
因為 Unity 不需要 IK 的資料,這麼做可以讓你很方便地刪除 IK 資料。
六、使用可重覆利用的 Rig
這樣可以讓不同的角色使用相同的動畫。
七、正確命名每一個bone
正確命名每一個bone之後,使用Ragdoll功能將會事半功倍。否則將骨架設定正確將花費你許多時間。
■腳本相關
參考論壇上前輩的心得,摘錄如下:
1.biobio前輩的 新人的學習作業
FindObjectsOfType,FindGameObjectWithTag,GameObject.Find,这类函数很好用,但是开销很大,要想优化性能最好使用static ArrayList,存储同一个类型的对象,使用的时候查这个list表就好。
分享到:
相关推荐
### 流程与流程优化基本知识 #### 一、流程定义与理解 1. **基本定义**: - 按照《牛津词典》的定义,流程是指一系列连续有规律的行动,这些行动以确定的方式发生或执行,从而导致特定结果的实现。 - 国际标准化...
优化设计的基本概念包括以下几个方面: 1. **优化**:源自英文"Optimization",指的是在一定约束条件下寻找目标函数最大值或最小值的过程。这可以视为一种决策过程,通过科学方法和手段确定最佳解决方案。 2. **...
以下是一些基本的优化理念: 1. **减少不必要的计算**:避免重复计算同一结果,尽可能利用已有的计算结果。 2. **简化条件判断**:优化条件语句,减少不必要的逻辑分支。 3. **合理使用循环结构**:针对循环操作...
Ansys 遗传算法优化实例介绍了 Ansys 优化设计的基本概念和优化方法,通过一个简单的水杯设计优化问题来说明 Ansys 优化理念和优化方法。 在 Ansys 优化设计中,设计变量(DV)是自变量,即需要优化的变量。在水杯...
讲义内容涵盖了一系列关于机械优化设计的基础理论、方法和实例分析,旨在帮助读者提升在设计过程中的效率和创新性。 在机械工程领域,优化设计是一种重要的技术手段,它通过科学的计算和分析,以最少的材料、最低的...
1. **优化理论基础**:了解基本的优化概念,如目标函数、约束条件、局部最优解与全局最优解等,以及常用的优化算法,如梯度法、单纯形法、遗传算法、模拟退火法等。 2. **数学建模**:学习如何将实际的机械设计问题...
《机械优化设计终极版》是针对机械工程领域中一项至关重要的技术进行深入讲解的课程,旨在教授学生如何利用现代设计理念和方法,通过优化设计提高机械设备的性能和效率。本课程由安徽工程科技学院机械工程系的赵敏...
本文档中介绍的优化方案,不仅适用于TD网络,而且很多优化理念和实施步骤也可以应用到其他类型的无线网络优化中。 在进行TD网络优化时,首先需要进行网络信息的收集,包括对原网络进行DT(Drive Test,路测)和CQT...
果蝇优化算法的基本观念 果蝇优化算法求解极大值与极小值 Z-SCORE模型系数优化-以财务预警为例 广义回归神经网络参数的优化-以网络购物物流满意度为例 灰色神经网络参数的优化-以基金买卖决策为例 支持向量回归...
本文将详细阐述系统优化设计的基本概念、方法论以及其在多学科背景下的应用。 ### 系统优化设计概述 系统优化设计是指在既定约束条件下,通过调整系统参数或结构,以达到特定性能指标最优的过程。这包括但不限于...
在这个"seo网站优化-资料"的压缩包中,包含了多份关于SEO的专业文档,如"搜索引擎优化.doc"、"SEO搜索引擎优化培训教程(2007版).doc"、"SEO团队培训资料1.doc"和"SEO团队培训资料2.doc"。这些文件很可能是深入讲解...
本章主要探讨软件工程的基本观念,包括其目标、常用模型以及相关的开发策略,旨在帮助读者理解和实践软件工程的核心理念。 1.1 软件工程的目标与常用模型 软件工程的核心目标是确保软件的质量和提高生产率。质量是...
并行优化设计是一种先进的设计理念,它强调在产品开发过程中各个阶段并行进行,包括设计、分析、制造和测试等。在公差优化的背景下,这意味着在设计初期就考虑公差对系统性能的影响,并在设计过程中同时进行优化,而...
【软件工程基本观念概述】 软件工程是一门涉及软件开发、管理和维护的系统性学科,旨在通过规范化的流程和方法提高软件的质量与生产效率,实现软件的工业化生产。本章主要探讨软件工程的基本观念,适用于软件公司的...
根据提供的文件信息,本文将对《Oracle查询优化改写技巧与案例》这一主题进行详细的解析,...希望这些知识能够帮助读者更好地理解和掌握Oracle查询优化的核心理念,在实际工作中灵活运用这些技术来提升系统的整体性能。
(咕泡学院)”,我们可以了解到本次讨论主要围绕性能的基础概念以及性能优化的基本理念。 **性能**通常指的是一个系统或程序在执行任务时的速度、效率和资源利用情况。性能的好坏直接影响到用户体验以及系统的稳定...
在易语言中,程序的基本结构包括模块、过程和语句,学习者可以通过这些基本元素构建复杂的程序逻辑。 2. 优化程序: 优化程序是指通过改进代码结构、算法优化或资源管理等方式,提高程序运行效率或减小程序占用...