unity GPU优化

来源:互联网 发布:淘宝鹊桥佣金怎么赚 编辑:程序博客网 时间:2024/06/04 17:43
一。标准
    1. DrawCall 控制在 200以下
    2. 同屏面数控制在4W面以下
二。评判瓶颈
    1. Unity Profile 出现 waitforPresent 
    2. IOS的 FrameDebugger 可以看到CPU跟GPU分别耗时 同时也能看到某步的具体耗时
    3. Adreno 也可给出每次pass消耗的clock数以及传输数量数。
三。常用手段
    1. 纹理采用GPU支持格式 尽量减少纹理大小
    2. camera的远裁剪面设置近一些
    3. 看情况开启遮挡剔除
    4. 减少透明片 overdraw在低端机会有很严重的性能问题
    5. 减少shader复杂度。利用好 mask通道
    6. 降低分辨率
    7. 善用欺骗 很多效果可以通过巧妙的办法进行仿制。需要多跟美术沟通 https://simonschreibt.de/gat/fallout-3-edges/
    8. GPU基本三大瓶颈 1.带宽 2.Vertex  3. Pixel 找出瓶颈分别优化
    
四。常用工具
    1.unity profile 包括5的frameDebugger
    2.ios frameDebugger
    3. adreno

(PS unity5 android 以后会默认有一次blit,很耗。曾经的想法是通过unity提供的RenderPlugIn 重新绑定原定的fbo 然后在新的fbo替换掉他的shader 移除摄像机,通过剔除给剔除掉解决。但是重新绑定fbo后,unity会检测到更改,在改回来。所以只能hook住opengl,让绑定函数失效。但是没成功.有相同的问题的各位可以一起聊聊。与4.6相比,大概有5~10帧的消耗)
0 0