浅谈手游的图形API 手游游戏信息可视化图表( 二 )


浅谈手游的图形API 手游游戏信息可视化图表

文章插图
OpenGL ES的进化史
和OpenGL ES 2.0相比,OpenGL ES 3.X的改动是巨大的,例如在3.0版本中使用了统一的ETC2/EAC纹理格式,不再需要为不同的硬件区分纹理包,而且使用了新版的着色语言,增强了纹理功能;而3.1版本中支持通用计算着色器、3.2版本中支持新的ASTC纹理格式等改进,也都大大拓展了OpenGL ES的应用范畴,提升了效率 。
浅谈手游的图形API 手游游戏信息可视化图表

文章插图
OpenGL ES 2.0和3.X长时间并存,而且OpenGL ES 3.X兼容旧版,因此为了兼容一些手游仍使用2.0
不仅如此,OpenGL ES 3.X还都向前兼容,在支持OpenGL ES 3.X的设备上,游戏依然可以使用OpenGL ES 2.0的接口 。也因为如此,目前仍有不少游戏使用OpenGL ES 2.0,这主要是出于兼容性方面的考虑 。
Metal 。这个API相信果粉们都相当熟悉了 。在iOS8之后,苹果大力推广Metal API,现在Metal已经成为了iOS和macOS的御用图形API 。和臃肿的OpenGL ES相比,Metal的突出优点就是特别薄,更加底层,能够更直接地调用硬件,这令游戏的运行效率暴涨 。
浅谈手游的图形API 手游游戏信息可视化图表

文章插图
果粉都相当熟悉的Metal,有了Metal后,macOS在图形API效率上才能和微软DX一较长短
换用Metal后,游戏的运行效率可以暴涨到何种程度?在macOS上《魔兽世界》和《星际争霸2》从OpenGL换用到了Metal,性能竟然提高了50%之多 。目前,iOS上的一流游戏大作基本都使用了Metal,这一方面能够使用更华丽的特效,另一方面也能够保证游戏的流畅度——如果你在《王者荣耀》中看到“M,T”的显示,那么就完全无需担心会卡顿掉帧了 。
浅谈手游的图形API 手游游戏信息可视化图表

文章插图
Metal推广得很快,根据维基百科,已经有超过148000款iOS应用使用Metal
Vulkan 。这个API主要由安卓系统使用,可以大致看作是安卓版的Metal 。在安卓7.0以后,Google引入了Vulkan API提升安卓的图形性能 。Vulkan的优点和Metal类似,远比OpenGL ES高效,能够访问OpenGL ES所不及的GPU特性,如果游戏使用了Vulkan,无疑会流畅不少 。
浅谈手游的图形API 手游游戏信息可视化图表

文章插图
和Metal一样,Vulkan相较OpenGL ES 3.X,对图形性能的提升也是巨大的,可达数倍
而和Metal相比,Vulkan对多平台的支持有更好 。它除了支持安卓,也支持iOS、Windows、Linux乃至任天堂Switch等平台 。而对于安卓平台来说,由于Vulkan对多线程支持极佳,因此意义尤为重大——很多安卓设备都是用了8核心乃至10核心的处理器,游戏如果使用Vulkan,无疑能够更充分得发挥硬件优势 。
浅谈手游的图形API 手游游戏信息可视化图表

文章插图
如果你用安卓机玩《王者荣耀》显示“V,T”,意味着得到了安卓上最好的优化
因此,如果你的安卓机玩《王者荣耀》显示的是“V,T”,那么就意味着玩起来会有丝滑般的团战体验 。而一旦显示的是“O2,F”,受限于臃肿的OpenGL ES 2.0,以及相较羸弱的CPU单核性能,游戏体验就很难令人满意了 。
总结
可见,图形API和游戏的“优化”是息息相关的,使用先进的图形API,能够让游戏流畅度大幅提升 。其实很多玩家都发现,《王者荣耀》是根据机型,而不是具体的硬件和系统来判断究竟是用哪种图形API、哪种优化方略的,同一部机器,只需要伪装一下机型,就能让《王者荣耀》从“O2,F”变成“V,T”,性能瞬间暴涨 。为何《王者荣耀》要如此设定?我们不得而知 。希望腾讯能够进一步开放《王者荣耀》对先进图形API的调用,为玩家带来更好的游戏体验吧 。