登录 立即注册
查看: 5402|回复: 0

手机渲染

[复制链接]

1156

主题

4183

帖子

4346

积分

超级版主

Rank: 8Rank: 8

积分
4346

逍遥会员章逍遥忠实勋章逍遥荣耀勋章逍遥达人勋章逍遥游戏玩家逍遥论坛达人逍遥新人资格章

发表于 2018-12-12 10:47:19 | 显示全部楼层 |阅读模式
手游使用的图形API孰优孰劣?
为什么你玩《王者荣耀》会觉得卡顿?最有可能的情况就是,《王者荣耀》既使用了老旧的图形API,又没有进行多线程优化,例如上文提到的“O2,F”。不同的图形API的确会对运行效率造成影响,我们这就来说说手机中常见的几个图形API。
OpenGL ES 2.0。这是一个相当古老的图形API。OpenGL ES由OpenGL演化而来,精简了OpenGL的大量内容,以适配移动设备,几乎所有的手机都会支持OpenGL ES这个图形接口。OpenGL ES 2.0这个版本在2007年已经发布,安卓2.0(NDK)/安卓2.2(JAVA)、iOS5以后的版本,以及黑莓OS、WebOS等平台都支持OpenGL ES 2.0,普及率非常高。
OpenGL ES 2.0可以看做是OpenGL 2.0的子集,但也有一些不同之处
OpenGL ES 2.0和现在最新的图形API相比,显然是不够先进高效的,在一些使用情况下还会颇显麻烦。例如,针对不同的硬件,它需要游戏提供不同的纹理包进行适配,如果你是一名安卓游戏的老玩家,应该还会记得以前玩安卓手游需要为PowerVR、Mali、Adreno、Tegra等不同的GPU找不同的纹理包,这是OpenGL ES 2.0带来的局限。在效率方面,OpenGL ES 2.0以现在的目光来看也不甚理想,因此如果你运行《王者荣耀》发现用的是“O2”,而且没有对多线程优化,极有可能会出现掉帧卡顿。
在几年前,玩安卓手游基本都得找GPU对应的纹理数据包,这是OpenGL ES 2.0带来的局限
OpenGL ES 3.X。从名字就可以看出这是OpenGL ES的更新版本。安卓4.3、iOS7以后的版本支持OpenGL ES 3.0,安卓5.0之后的版本支持OpenGL ES 3.1,安卓6.0以后的版本支持OpenGL ES 3.2。而苹果在iOS8开始主打Matel图形API,不再以OpenGL ES为重点。
OpenGL ES的进化史
和OpenGL ES 2.0相比,OpenGL ES 3.X的改动是巨大的,例如在3.0版本中使用了统一的ETC2/EAC纹理格式,不再需要为不同的硬件区分纹理包,而且使用了新版的着色语言,增强了纹理功能;而3.1版本中支持通用计算着色器、3.2版本中支持新的ASTC纹理格式等改进,也都大大拓展了OpenGL ES的应用范畴,提升了效率。
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的突出优点就是特别薄,更加底层,能够更直接地调用硬件,这令游戏的运行效率暴涨。
果粉都相当熟悉的Metal,有了Metal后,macOS在图形API效率上才能和微软DX一较长短
换用Metal后,游戏的运行效率可以暴涨到何种程度?在macOS上《魔兽世界》和《星际争霸2》从OpenGL换用到了Metal,性能竟然提高了50%之多。目前,iOS上的一流游戏大作基本都使用了Metal,这一方面能够使用更华丽的特效,另一方面也能够保证游戏的流畅度——如果你在《王者荣耀》中看到“M,T”的显示,那么就完全无需担心会卡顿掉帧了。
Metal推广得很快,根据维基百科,已经有超过148000款iOS应用使用Metal
Vulkan。这个API主要由安卓系统使用,可以大致看作是安卓版的Metal。在安卓7.0以后,Google引入了Vulkan API提升安卓的图形性能。Vulkan的优点和Metal类似,远比OpenGL ES高效,能够访问OpenGL ES所不及的GPU特性,如果游戏使用了Vulkan,无疑会流畅不少。
和Metal一样,Vulkan相较OpenGL ES 3.X,对图形性能的提升也是巨大的,可达数倍
而和Metal相比,Vulkan对多平台的支持有更好。它除了支持安卓,也支持iOS、Windows、Linux乃至任天堂Switch等平台。而对于安卓平台来说,由于Vulkan对多线程支持极佳,因此意义尤为重大——很多安卓设备都是用了8核心乃至10核心的处理器,游戏如果使用Vulkan,无疑能够更充分得发挥硬件优势

CPU要支持虚拟化技术 主板开启VT 关闭Hyper-V 显卡驱动正确 完整系统
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|模拟器|手机模拟器|手游模拟器|安卓模拟器|( 沪ICP备14046591号 )

GMT+8, 2024-4-18 10:20 , Processed in 0.027789 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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