学习资料:《Unity Shader入门精要》第16章
源代码:Github
影响性能的因素
CPU优化
draw call:CPU在每次通知GPU进行渲染之前,都需要准备好顶点数据(位置、法线、颜色、纹理坐标等),调用一系列API把它们放置到GPU可以访问的指定位置,然后产生一个draw call。CPU对渲染状态的设置改变十分耗时。
- 使用批处理减少draw call数目
GPU优化
-
减少需要处理的顶点数
- 优化几何体
- 使用模型的LOD(level of detail)技术:物体远离摄像机时,减少面片数量
- 遮挡剔除
-
减少需要处理的片元数
- 控制绘制顺序:使用渲染队列排序
- 警惕透明物体
- 减少实时光照
-
减少计算复杂度
- 使用Shader的LOD技术:shader的LOD值小于某个设定值时,才会使用该shader
- 代码优化
- 使用低精度的浮点数:fixed < half < float
- 使用尽可能少的插值变量
节省内存带宽
- 减少纹理大小
- 分辨率缩放
- 多级渐远纹理