CPU:减少draw call
-
手动合并mesh或使用unity的批处理(一个mesh中有1000三角面优于1000个只有1个面的mesh)。
- 静态合批
- 动态合批
- GPU Instancing
-
在物体中使用更少的材质,把不同的纹理放到一个更大的纹理图集中。
-
使用更少导致对象被渲染多次的效果(如反射,阴影和像素光)。
请注意,合并两个不同材质的的对象无法提升性能。需要多种材质的最常见原因是两个mesh没有共享相同纹理。为了优化CPU性能,请确保合并的所有对象共享相同纹理。
当在Forward rendering path中使用多个像素灯时,可能会出现合并对象没有意义的情况。请参阅下面的光照性能部分,以了解如何管理它。
GPU:优化模型几何形状
-
尽量减少不必要的三角面
-
尽量减少UV贴图接缝和硬边(硬边处顶点数翻倍)
请注意,图形硬件必须处理的顶点的实际数目通常与3D应用程序报告的数目不同。建模应用程序通常显示组成模型的不同角点的数量(称为几何顶点数)。然而,对于一个显卡,为了渲染的目的,一些几何顶点需要被分割成两个或更多的逻辑顶点。如果一个顶点有多个法线、UV坐标或顶点颜色,则必须对其进行分割。因此,Unity中的顶点数通常高于3D应用程序给出的顶点数。
虽然模型中的几何图形数量主要与GPU相关,但Unity中的一些功能也在CPU上处理模型(例如mesh skinning)。