关于是否适配OpenGLES2.0的分析报告

最近的一个项目中,关于面向Android平台的贴图压缩格式是否需要考虑兼容OpenGL ES2.0的讨论,做了一个简要的评估报告。这是根据现阶段运营反馈数据做出的分析,并不表示为一个最终的决定。

这里技术评估主要考虑三方面的要素:需求的必要性,系统理解复杂度和运行解码效率的经济性。目前采用的是平台默认压缩纹理格式ETC2,随着项目持续运营的数据更新,再据实做出调整,比如ETC1+Alpha通道的方案。


  1. 原因
  2. 结论
  3. 运营数据
  4. 软件向分析
  5. 硬件向分析
  6. 分析结果
  7. 目前的一个反例
  8. 参考资料

原因

X项目客户端,部分贴图压缩采用了ETC2格式(特别对于那些尺寸是4的倍数(可以是NPOT格式,比如:20×80)的贴图有高压缩比。ETC2格式匹配的是OpenGL3.0版本,在只支持OpenGL2.0的手机设备上部分贴图会导致失真效果。

ps1 兼容:OpenGL3.0默认兼容OpenGL2.0。
ps2 适配:贴图ETC2压缩格式不适配OpenGL2.0,需要另行处理。

结论

先给结论,暂时不考虑适配只支持OpenGL2.0的手机设备。

运营数据

软件向分析

OpenGL 3.0
发布日期:2008年8月11日。

Android系统主要在6.0版本以上
发布日期:2016年8月份。

Android少数5.1.1版本
发布日期:2015年3月11日。

硬件向分析

我们产品统计数据
三星,华为,小米,oppo,vivo,LG都是主流大厂,从经济因素考虑,产品都是引领市场,不可能滞后于市场技术迭代。

市场统计数据
骁龙按照性能水平分四级,骁龙800系列、600系列、400系列和200系列处理器,以骁龙600为例。

骁龙600

发布时间
2013年1月7日发布。

GPU
速度更快的Adreno320 GPU,图形处理性能较上一代的Adreno 305 GPU提高300%以上。支持OpenGL ES 3.0、DirectX、OpenGL、Renderscript Compute和FlexRender™等先进的图形和计算接口(API)。

终端
有多款基于骁龙600系列处理器的终端已经发布。

  • HTC One(801e)
  • LG G Tablet 8.3
  • OPPO x909t
  • vivo Xplay (X510t)
  • HTC One (801s)
  • vivo Xplay (X510w)
  • HTC One (802t)
  • HTC One (802w)
  • 华硕A80
  • HTC One (802d)
  • 三星Galaxy S4 (I9508)
  • 小米2S
  • nubia Z5S mini
  • Pantech VEGA a870
  • HTC Butterfly s(901e)
  • HTC Butterfly s(901s)
  • HTC Butterfly s(9088)
  • HTC Butterfly s(919d)
  • HTC Butterfly s(9060)
  • HTC One max(803e)
  • HTC One max(803s)
  • HTC One max(8088)
  • HTC One max(809d)
  • HTC One max(8060)
  • HTC One max(8160)
  • LG G PRO

分析结果

以骁龙600应用的手机设备和android系统的发布时间,可以推导出:至少2013年以后主流手机都支持opengl3.0

目前的一个反例

魅族mx4

上市时间 2014(运营部门一致认为国内海外都不考虑该品牌)。

参考资料

发布者

Loy Wong

A Programmer.