1)本地资源检测,特效检测中Overdraw相关问题
2)Android上如何加速判定Bundle文件是否存在
3)xLua pcall异常捕获
4)Mipmap和带宽
5)Timeline卡顿严重时,Clip被完全跳过没有执行
这是第230篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Rendering
Q:咱们这个特效资源检测Overdraw和实际检测差距有点大。是不是统计峰值比较好一些?有可能一个特效播放时间特别长,但是峰值就很短的时间,这样一平均Overdraw就很低了。
A:首先要谈谈Overdraw的定义问题:
1. Overdraw是一个描述像素重复绘制次数的概念。单个像素的重复绘制次数很容易理解,但是对于一个特效的Overdraw,笔者还没有找到什么公认的“标准”的计算公式,也不存在什么“官方”的定义。
对于一帧来说,Overdraw值可以定义为该帧总体绘制像素的次数 / 屏幕上实际绘制的像素数。而这个值也不能简单理解为“绘制的层数”。(试想如果总共在屏幕上绘制了1000个像素,其中只有一个像素绘制了10层,那这个重复绘制的像素对Overdraw值得贡献也是可以忽略的,计算结果为:1009/1000=1.009)。而对于整个特效播放过程中的Overdraw,具体公式如何定义,又是一个问题。
2. sunbrando的开源库的计算方法:整个播放过程中,
分子是 对每一帧绘制像素的次数求和,分母是对 每一帧屏幕上实际显示的像素数求和。
这个公式确实可以从整体上衡量一个特效播放过程中的Overdraw。但是这种计算存在这