开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:560

当前位置:游戏蛮牛 技术专区 教程分享

查看: 258|回复: 2

[自学总结] 移动设备上的优化

[复制链接]  [移动端链接]
4四处流浪
425/500
排名
3716
昨日变化
8

12

主题

48

帖子

425

积分

Rank: 4

UID
25767
好友
1
蛮牛币
799
威望
0
注册时间
2014-5-19
在线时间
112 小时
最后登录
2017-1-11
发表于 2017-1-5 16:53:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x

性能优化方面的设计一直是程序员津津乐道的黑科技之一,我们小心翼翼的针对安卓手机进行开发,也必需面对不同的设备、GPU,显而易见的是不同设备之前的差异很比较大的,但是我们还是可以遵循一些简单的规则,让我们面对不同的设备时,依然保持很好的适应性。下面让我们参考一下几点来一起考虑不同设备的场景。
第一、最求高分辨率的画质会影响你的性能。在这个最求UI美的年代,尽管移动端的GPU性能和屏幕分辨率都在快速增长,但不知不觉渲染的一个个像素都是用你的性能来作为成本的,甚至只是一个简单的颜色,不管安卓、还是其他的芯片设计都是这样。所以性能的衰退可能源于你追求高分辨率。
第二、draw calls是一件昂贵的事。当程序每次渲染一个顶点时,本身OpenGL渲染是话费成本的,实际上,大多数设备我认为你可以由选择的开关,一些真正想要的渲染才是你真正的成本,这就涉及开启/关闭状态。如果你同样的GrawCall需要多次,第一次要比后续的性能花费更加昂贵,但一般来说我们尽可能低的GrawCalls值。
第三、实时灯光(realtime light)渲染也是件昂贵的事。在移动设备上,实时灯光可能会严重影响你的程序表现。通常会严重影响你的GPU或多重渲染像素,或者占用你空闲的GPU。所以在不太影响体验的情况下,尽可能节约使用实时灯光。
第四、注意你的顶点(vertex)数。当然一些高配的移动设备处理场景顶点时是非常擅长的,但为了在更多低端设备上运行,我们可以把30K面/帧 作为一个假定的上限,可能这个数字有点保守,但请注意某些灯光可以增加你的三角形数目。

我们所遇到的性能问题95%都是以上几点造成的,如果程序变卡或者性能下降我们该采取怎么对策呢。
第一、宏观上规划使用的图片(Macrotexture),在场景总使用尽可能小像素的纹理,例如把所有纹理都排布在几张1024*1024的图集里面,这就是提升性能的方法,好处在于我们批量所有可见的场景集合面都使用相同的纹理,分别以不同的顶点缓存发生到GPU,Unity动态的自行选择调用。显而易见的是,宏观上去规划图集需要你有艺术家的眼光,设计、建模能力,并且愿意返工重新设计来适应纹理变化情况。但是这样做却是十分值得的。
第二、静态处理(staticBatching),除了动态变换材质,我们把不会移动的物体进行静态批处理,通常把所有的这类非移动物体标记为一个Layer,标记为静态可以显著提升我们的性能。
第三、控制你的渲染,在PC端,系统会由后向前渲染你做的场景,从最远处的天空开始到距离你相机最近的地方结束,通过隐藏使其他物品混合。然而在移动端,这样的性能消耗也是非常巨大的。所以我们应该尝试把物体尽可能多的前后放置,后面的物体被前面的物体遮挡而隐藏要比根据深度绘制一次快的多。
第四、注意透明的使用,填充一个透明像素要比填充一个正常像素花费的过程多,在移动设备上使用大型的半透明对象是非常昂贵的,更昂贵的是使用层的透明。所以,我在屏幕上可以使用小区域的透明,但是一旦透明的范围开始扩散到大部分的屏幕,帧的成本就会升高。所以透明像素尽可能少的占用屏幕。
第五,"画面非常好"和"跑起来非常流畅"很难找到一个平衡,现在的IPhone7和高配安卓手机相比三四年前的前辈,已经可以运行更加复杂的场景。所以我们设计场景可以降低画质和显示来换取性能,我们把mip最高显示小于IPhone4的屏幕,我们可以尝试降低帧率,这些可以很容易的做到。
谢谢阅读,再会。

Aiyioo_20170105

Aiyioo_20170105

回复

使用道具 举报

5熟悉之中
737/1000
排名
6872
昨日变化
76

2

主题

442

帖子

737

积分

Rank: 5Rank: 5

UID
92518
好友
1
蛮牛币
1518
威望
0
注册时间
2015-4-15
在线时间
167 小时
最后登录
2017-1-21

迈向小康

发表于 2017-1-7 16:54:01 | 显示全部楼层
谢谢分享

回复

使用道具 举报

3偶尔光临
229/300
排名
12210
昨日变化
315

0

主题

156

帖子

229

积分

Rank: 3Rank: 3Rank: 3

UID
156480
好友
0
蛮牛币
294
威望
0
注册时间
2016-7-12
在线时间
37 小时
最后登录
2017-1-20
发表于 2017-1-10 13:18:05 | 显示全部楼层
6666666666666

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表