位置: 编程技术 - 正文
推荐整理分享unity3d 移动平台上性能优化专题(1):减少Draw Call(unity3d跨平台),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d物体移动代码,unity3d跨平台,unity 移动应用开发,unity3dwasd移动,unity 移动端,unity 移动端,unity3dwasd移动,unity3dwasd移动,内容如对您有帮助,希望把文章链接给更多的朋友!
一次DrawCall都会造成cpu巨大的性能开销,所以减少drawcall可以说是所有的性能优化中最重要的一环。
常见的做法都是通过合并纹理,尽量让一个模型只消耗一个drawcall,其实大部分游戏都是这么做的。当然你会发现正常情况下你的drawcall不会超过.
外国一个大牛的原文:
Draw calls are expensive. Every time you tell OpenGL ES to draw a buffer of verts, that call itself has a cost. Actually, on most devices I think it is the state switch involved in selecting the verts that you wish to draw that incurs the real cost; if you were to draw the same buffer multiple times, the first draw call would be more expensive than the subsequent calls. But generally speaking, we try to keep the number of draw calls as low as possible. In Wind-up Knight 2 we have about – per frame. Dungeon Slots is less than per frame.
然后我们发现,大部分游戏真正导致大量drawcall开销的一般是特效或者GUI的不正确使用。
特效为了能够更加华丽酷炫,大量的drawcall可能是无法避免的,这就需要进行折衷。我也强烈建议在一个场景中单独放这个特效,然后观察drawcall数,如果太过夸张,比如一个特效多达个drawcall,那么我觉得就应该对这个特效进行优化, 再炫,也不要超过个drawcall。
GUI就不多说了,希望好好去学习下NGUI的用法。
ok,然后我花了一个下午的时间,检查了所有的特效,发现不少特效其实都可以优化drawcall,而且还发现一个特效有多余的东西没删掉,峰竟然到达了个drawcall,处理后只剩个,还算可以接受。
最后,针对drawcall的优化正常情况下不会有明显的性能提升,除非你让drawcall下降了整整一个数量级,不然几乎就是1ms甚至不到的性能提升,但这仍然是必要的。毕竟,个1ms就是ms,如果你能够切实的优化个点,那么节省的ms无疑会让你的性能大幅提升到一流水平。
而接下来的还有大量 优化专题等着你。
Unity 中WWW加载 AssetBundle---中文路径 因为FileStream是允许中文路径的,可以先通过文件流把AssetBundle读取到内存,在通过CreateFromMemory创建AssetBundle资源,这样的话就避开了WWW不能加载中文路
Mac版MonoDevelop启动调试时程序假死 开发机的Mac配置比较低,在打开UnityEditor之后再启动MonoDeveloper调试时,已经尽可能关掉不相关的程序,但是还是老是出现MonoDeveloper假死现象,出现频率
unity3d移动平台优化专题(2):不要使用实时光照 目前市面上的移动平台上的游戏,几乎没有用实时光照的,基本用的都是光照烘焙,因为对于大部分人而言,一个非常漂亮的光照烘焙过的场景已经足
标签: unity3d跨平台
本文链接地址:https://www.jiuchutong.com/biancheng/380164.html 转载请保留说明!友情链接: 武汉网站建设