如图英雄展示模块,性能浅谈
1:fps处理
这里主要是通过对线上大数据分析和资源制作的实际情况来找到平衡点,我们的数据都是东南亚市场,实际硬件水平比较低,下图,是我们对应的英雄在玩家性能市场的实际表现情况
1:包体大小控制
2:当前show hero 过程中的平均fps (要求在26以上)
3:当前英雄资源加载的耗时 (要求在900ms以下)
对应上面2点数据对实际的资源情况进行分析,下图
包体大小占比:particle(10-25%) texture(40-70%) mesh(7-20%) action(10-50%)
最终标准结果(干货)
英雄模型:
(1) 面数:1.5w
(2) 贴图:4(4代表是把用到是所有贴图拼起来不超过4张1024的图,同时也有效的控制了包体大小)
(3) 表演动作时长:10m (如果时间越长可能需要更多的资源来堆过程)
(4) 骨骼:130
特效:
(1) 贴图:1.5(1.5代表是把用到是所有贴图拼起来不超过1.5张1024的图)
(2) ParticleSystem数量:60
场景:
(1) 贴图:2,
(2) 面数:3000
(2) overdraw:2(这里的2指的是所有像素的计算次数和除以屏幕像素)
运行时:
(1) dc:90(最高不超过)
(2) 每帧粒子数量:80(一帧里面所有的特效发射出来的粒子同屏不能超过)
(3) 超过规定粒子数量占比:10%(基于上面限定的每帧粒子数量,因为无法避免设计所需,所有允许运行中有些帧超过规定值,但这个超过的帧数只能在展示总帧数的10%内)
(4) 每帧overdraw: 8(这里的2指的是所有像素的计算次数和除以屏幕像素)
(5) 超过规定overdraw占比:10%(基于上面限定的overdraw,超过的帧数只能在展示总帧数的10%内)
(6) 最大overdraw: 10(超过overdraw的值不能大于10)
为此一套标准的工具 下图
工具主要分2部分
(1): 实时小面板,用来做一些基本标准的验证
(2): 实时prefiler,用来做,运行实时显示Particle数量,overdraw等曲线,选择当前帧可以看到实对应数据, 主要用来定位原因
2:加载时间处理
这里用的AssetBundle.LoadFromFile加载和lz4的资源压缩