Unity中的渲染优化技术笔记
最近一直在研究关于UnityShader的知识,由于是小白入门,对于相关的文章比较感兴趣,而对于UnitySahder入门精要的阅读和练习,也确实收益匪浅,也因此想着写下一些读书笔记来做一些记录以备自己以后翻看查阅,同时也希望为有需要的同学提供些许帮助吧,这一篇的笔记主要是记录一些自己在对于Unity中渲染优化技术一章的理解和练习吧,如有不对的地方,请大家谅解,也欢迎指正,从而学习到更多的知识!
1.移动平台特点
对于游戏的开发和性能优化永远离不开的两个话题就是CPU和GPU的优化,通俗一些的理解就是CPU的帧率保证,玩游戏不卡帧,GPU保证分辨率等相关处理,画面精致游戏感强,同时又由于手游的便携性和普遍性,相比于端游的开发,手游的开发更易于投入市场,但是也由于手机的硬件配置和PC机存在很大的区别,对于性能的优化来说,手游的优化要求也相对较多一些,在这里对于渲染性能的优化也同样适用于移动平台手游。
2.影响性能的因素分析
2.1 影响因素
上文中已经提到了CPU和GPU两个方面对于游戏性能的影响,同时带宽也是会造成一定的影响的,因此下文中也主要以这几个方面来介绍:
- CPU方面
1)过多的draw call (对于draw call的研究在这里就不多解析了,有时间的话会专 门把draw call的研究写出来的)
2)复杂的脚本和物理模拟 - GPU方面
1)顶点处理
a.过多的顶点
b.过多的逐顶点计算
2)片元处理
a.过多的片元(有分辨率和overdraw两种原因)
b.过多的逐片元计算 - 带宽
1)使用了尺寸很大未压缩的纹理
2)分辨率过高的帧缓存
2.2 性能优化技术简要分析
- CPU优化
使用批处理技术减少draw call数目 - GPU优化
1)减少需要处理的顶点数目
a. 优化几何体
b. 使用模型的LOD(Level of Detail)技术
c.使用遮挡剔除(Occlusion Culling)技术
2)减少需要处理的片元数目
a. 控制绘制顺序
b.警惕透明物体
c.减少实时光照