Unity3D优化技术

CPU优化

a.使用批处理技术减少draw call数目(动态批处理和静态批处理,GPU Instancing,使用共享材质,打包图集)

GPU优化

a.减少需要处理的顶点数目
<1>优化几何体
<2>使用模型的LOD(Level of Detail)技术
<3>使用遮挡剔除(Occlusion Culling)技术

b.减少需要处理的片元数目
<1>控制绘制顺序
<2>警惕透明物体
<3>减少实时光照(使用烘焙贴图)

c.减少计算复杂度
<1>使用Shader的LOD(Level of Detail)技术
<2>代码方面的优化
(1)对象数<顶点数<像素数,尽可能把计算放在每个对象和逐顶点上
(2)尽可能使用低精度的浮点值进行运算,最好精度的float适用于存储诸如顶点坐标等变量,但计算速度是最慢的,尽量避免在片元着色器中使用这种精度进行计算。half适用于一些标量,纹理坐标等变量,它的计算速度大约是float的俩倍,而fixed适用于绝大多数颜色变量和归一化后的方向矢量,在进行一些对精度要求不高的计算时,尽量使用这种精度的变量。它的计算速度大约是float的4倍,但避免对这些低精度变量进行频繁的swizzle操作(如color.xwxw)。尽量避免在不同进度之间的转换。
(3)尽可能不要使用全屏的屏幕后处理效果。
(4)尽可能不要使用分支语句和循环语句,尽可能避免使用类似sin,tan,pow,log等较为复杂的数学运算。可以使用查找表来作为替代,尽可能不要使用discard操作,因为这会影响硬件的某些优化。

节省内存带宽

a.减少纹理大小
(多级渐远纹理(Mipmapping)和纹理压缩,纹理长宽比最好是正方形,而且长宽值最好是2的整数幂)
b.利用分辨率缩放

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容