Unity3D学习笔记(九) 一些优化方法
(2012-09-08 23:52:38)
一.设置优化
1.地形系统的pixel error等设置可以稍微放开一点,尤其是Pixelerror极度影响drawcall。
2.估计地形最长可视距离,把摄像机(尤其是主角身上)的可视距离降低,否则被遮挡的会也会被渲染。(貌似剔除遮罩没完成此工作,只是可视区域外隐藏)
3.图片长宽尽量用2的n次方,可减少运算量。
4.烘焙光照贴图。
5.烘焙occlusion culling(剔除遮罩)。
6.以双摄像机取代单摄像机。A摄像机层次更小,可视范围极长(比如20,AB相机此参数可以作为图像质量设定一部分),但只能看到场景轮廓(选择clearflag为depth only并用遮罩层控制地形被渲染即可),B摄像机层次高,可视范围极小(比如1000),但能看到所有层(选择clearflag为depth only)。
7.删除部分场景装饰物体(或作为质量设定高时才出现),尤其是刚体!
8.最好用水面贴图和声音取代流动水。
二.脚本优化
1.把不需要每帧实时运算或监测的数据改为若干帧后调用一次(除GUI外其实很多可以减少调用次数)。比如:
①如果敌人寻路使用的是自己设计的算法,那么计算路径的频率可以减少。
②敌人发现主角的算法中,基于距离和基于射线的发现方式都可以不必逐帧调用。
2.利用标准资源包的脚本CombineChildren。把相同网格和材质和模型用空的父物体编成一组,对父物体添加此脚本,即可让全组模型的网格和贴图只使用两次drawcall(否则要使用n*2次)。某些简单的移动物体貌似也可以。